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

王林
リリース: 2024-03-19 11:42:01
転載
926 人が閲覧しました

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 までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!