ホームページ  >  記事  >  バックエンド開発  >  PHPで配列の差分を計算する方法

PHPで配列の差分を計算する方法

王林
王林転載
2024-03-19 11:40:07952ブラウズ

php エディタ Xigua は、PHP が配列の差分を計算する方法を詳細に分析します。実際の開発では、2 つの配列の違いを比較することが一般的な要件であり、これは新しく追加、削除、変更された要素を見つけるのに役立ちます。この関数は、PHP の組み込み関数といくつかの単純なロジックを通じて簡単に実装できます。次に、PHP を使用して配列の差分を計算し、開発作業をより効率的かつ便利にする方法を見てみましょう。

配列の差分を計算するための PHP ガイド

配列の差異の計算は、2 つ以上の配列の要素の差異を比較および対比するプロセスです。 php では、目的の結果と配列の構造に応じて、このタスクを実行するためのいくつかの方法が提供されます。

array_diff() 関数

array_diff() この関数は、最初の配列に存在し、他のすべての配列には存在しない要素を検索するために使用されます。その構文は次のとおりです:

array_diff($array1, $array2, ..., $arrayN);
###例えば:###

$array1 = ["リンゴ"、"バナナ"、"チェリー"]; $array2 = ["バナナ", "オレンジ"]; $diff = array_diff($array1, $array2); // ["リンゴ", "チェリー"]

array_diff_assoc() 関数

array_diff_assoc()

関数は array_diff() に似ていますが、配列キーも比較します。同じキーと値を持つ要素を返します。その構文は次のとおりです: array_diff_assoc($array1, $array2, ..., $arrayN);

###例えば:###
$array1 = ["リンゴ" => 1、"バナナ" => 2、"チェリー" => 3];
$array2 = ["バナナ" => 2, "オレンジ" => 4];

$diff = array_diff_assoc($array1, $array2); // ["apple" => 1, "cherry" => 3]

array_diff_key() 関数

array_diff_key() この関数は、2 つの配列内で異なるキーを持つ要素を検索するために使用されます。その構文は次のとおりです:

array_diff_key($array1, $array2, ..., $arrayN); ###例えば:### $array1 = ["リンゴ" => 1, "バナナ" => 2]; $array2 = ["バナナ" => 2, "オレンジ" => 4]; $diff = array_diff_key($array1, $array2); // ["apple" => 1]

array_udiff() および array_uintersect() 関数

array_udiff()

関数と array_uintersect() 関数は、ユーザー定義の比較関数を使用して 2 つの配列内の要素を比較するために使用されます。

array_udiff()

は、最初の配列に存在し、他のすべての配列には存在しない要素を返します。一方、array_uintersect() は、両方の配列に存在する要素を返します。構文は次のとおりです: array_udiff($array1, $array2, ..., $arrayN, $compareFunction); array_uintersect($array1, $array2, ..., $arrayN, $compareFunction); カスタム比較関数は 2 つのパラメーター (配列要素) を受け取り、整数を返す必要があります。

最初の要素が 2 番目の要素より小さい場合は、-1 を返します。
最初の要素が 2 番目の要素と等しい場合は、0 を返します。 

最初の要素が 2 番目の要素より大きい場合は、1 を返します。
  • たとえば、次のカスタム比較関数は
  • 果物の配列を名前で並べ替えます
  • :
  • 関数compareFruits($a, $b) { return strcmp($a["名前"], $b["名前"]); }

カスタム比較関数を使用して差を計算します:

$配列1 = [
["名前" => "リンゴ", "価格" => 1],
["名前" => "バナナ", "価格" => 2],
["名前" => "チェリー", "価格" => 3],
];

$array2 = [
["名前" => "バナナ", "価格" => 2],
["名前" => "オレンジ", "価格" => 4],
];

$diff = array_udiff($array1, $array2, "compareFruits"); // [["name" => "apple", "price" => 1], ["name" => "cherry", "価格" => 3]]

上記の例では、compareFruits 関数は配列要素を名前で並べ替えるため、結果には array1 には存在するが array2## には存在しないフルーツが含まれます。 # 。

以上がPHPで配列の差分を計算する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はlsjlt.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。