ホームページ  >  記事  >  バックエンド開発  >  複数の配列の差分セットを取得する 3 つの方法 (コレクション) を学習します。

複数の配列の差分セットを取得する 3 つの方法 (コレクション) を学習します。

WBOY
WBOYオリジナル
2021-11-08 10:29:073636ブラウズ

前回の記事「 複数の配列の積集合を5分で学ぶ3つの方法(まとめ) 」では、PHPの配列操作における複数の配列の積集合を求める関連知識を紹介しました。この記事では、配列演算で複数の配列の差分集合を取得する方法を見ていきます。みんなが助けてくれることを願っています!

複数の配列の差分セットを取得する 3 つの方法 (コレクション) を学習します。

前の記事では、複数の配列間の交差部分を取得したい場合は、PHP の array_intersect 関数を使用できることを学びました。 array_intersect_key 関数と array_intersect_assoc 関数は、異なる方法を使用して配列間の共通部分を取得します。 PHPには配列間の共通部分を求める方法があるので、PHPの配列間の差分を求める方法もあります。

配列間の差分を取得する方法は多数ありますが、共通部分を取得するのと同様に、キー値の比較、キー名の比較、キー値とキー名の比較によって配列を比較し、取得することもできます。配列間の違いを設定します。これら 3 つのメソッドの使用法を個別に見てみましょう。

キー値の比較 -<span style="font-size: 20px;">array_diff</span>関数

PHP では、組み込みの array_diff 関数を使用して、キー値を比較することで配列を比較し、配列間の差分を返します。 array_diff関数の基本的な構文形式は次のとおりです。

array_diff(array1,array2,array3...);

パラメータ array123 は、比較に使用される配列、返された結果の差分配列、配列内の要素を表すことに注意してください。配列の最初の要素に含まれる配列。返される配列は、他の配列では見つからない最初の配列の値であり、返される配列内のキー名は変更されません。

例を通して array_diff 関数の使用法を見てみましょう。例は次のとおりです:

<?php
$fruit1 = array("Apple","Banana","Orange");
$fruit2 = array("Pear","Apple","Grape");
$fruit3 = array("Watermelon","Orange","Apple");
$intersection = array_diff($fruit1, $fruit2, $fruit3);
print_r($intersection);
?>

出力結果:

複数の配列の差分セットを取得する 3 つの方法 (コレクション) を学習します。

上記の例では、array_diff 関数を使用し、返される結果は配列 1 と他の配列の差です。つまり、返される結果は、配列 1 には存在するが他の配列には存在しない要素そのものです。もちろん、これは要素のキー値を比較していますが、要素のキー名を比較して返される結果の違いを見てみましょう。

キー名の比較 - array_diff_key関数

PHP では、array_intersect_key を使用できます。関数 配列間のキー名を比較し、配列間の共通部分を返します。同様に、array_diff_key 関数はキー名を比較し、配列間の差分を返すことができます。

array_diff_key関数の基本的な構文形式は次のとおりです:

array_diff_key(array1,array2,array3...);

次の点に注意してください: パラメータ array123 は比較する必要がある配列を表し、返された差分配列の要素 これらはすべて配列 1 の要素ですが、他の配列要素にはありません。

次に、例を通して array_diff_key 関数の適用を見てみましょう。例は次のとおりです:

<?php
$fruit1 = array("a"=>"Apple","b"=>"Banana","c"=>"Orange");
$fruit2 = array("a"=>"Pear","d"=>"Apple","e"=>"Grape");
$fruit3 = array("a"=>"Watermelon","f"=>"Orange","g"=>"Apple");
$intersection = array_diff_key($fruit1, $fruit2, $fruit3);
print_r($intersection);
?>

出力結果:

複数の配列の差分セットを取得する 3 つの方法 (コレクション) を学習します。

上記の例では、array_diff_key 関数を使用して配列間のキー名を比較し、差分セットを返します。は配列 1 にあるものとまったく同じです。キー名は、他の配列要素には見つからないキー名です。これはキー名を比較することで行われますが、キー値とキー名を同時に比較する方法を見てみましょう。

キー値とキー名の比較 - array_diff_assoc関数

PHP では、array_intersect_assoc# を渡すことができます。 # #この関数はキー値とキー名を比較し、配列要素の積部分を結果として返します。array_diff_assoc 関数と同様に、この関数もキー値とキー名を比較しますが、返される結果は、配列要素の共通部分です。

array_diff_assoc関数の基本的な構文形式は次のとおりです:

array_diff_assoc(array1,array2,array3...);

パラメータ array123 は比較する必要がある配列を表すことに注意してください。キー値とキー名。返される差分配列の要素はすべて配列 1 の要素ですが、他の配列要素にはありません。


例を通じて

array_diff_assoc 関数のアプリケーションを見てみましょう。例は次のとおりです:

<?php
$fruit1 = array("a"=>"Apple","b"=>"Banana","c"=>"Orange");
$fruit2 = array("a"=>"Pear","d"=>"Apple","e"=>"Grape");
$fruit3 = array("a"=>"Watermelon","f"=>"Orange","g"=>"Apple");
$intersection = array_diff_assoc($fruit1, $fruit2, $fruit3);
print_r($intersection);
?>

出力結果:


複数の配列の差分セットを取得する 3 つの方法 (コレクション) を学習します。

上記の例では、

array_diff_assoc 関数を使用して配列間のキー値とキー名を比較し、差分セットを返します。返される結果は配列 1 の要素そのものですが、他の配列の要素ではありません。

ご興味がございましたら、「

PHP ビデオ チュートリアル 」をクリックして、PHP の知識をさらにご覧ください。

以上が複数の配列の差分セットを取得する 3 つの方法 (コレクション) を学習します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。