ホームページ >バックエンド開発 >PHPの問題 >PHP 配列の学習: 2 つの配列を比較して差分セットを見つける方法

PHP 配列の学習: 2 つの配列を比較して差分セットを見つける方法

青灯夜游
青灯夜游オリジナル
2021-08-04 11:38:434674ブラウズ

前回の記事では、配列を比較して同じ要素(交差部分)を求める方法を紹介しましたので、興味のある方はこちらをご覧ください→「PHP配列学習: 2つの配列を比較して見つける方法」交差点###"。交点が求まるので差分集合も求まりますが、差分集合はどうやって求めるのでしょうか?この記事では、PHP で配列を比較して異なる要素 (差分セット) を取得するいくつかの方法を紹介します。

前回の記事と同様に、まず 2 つの配列を比較して差分を求める関数を見てみましょう。PHP には複数の関数が組み込まれています。この記事では主によく使用される 3 つの関数、array_diff()、 array_diff_key()、array_diff_assoc() では、それぞれ「キー値」、「キー名」、「キー値とキー名」に関して配列を比較し、差分配列を返します。差分要素は、比較された配列から取得されます (最初のパラメータ)。

無駄に理解するのは難しいので、コード例を使用して、array_diff()、array_diff_key()、および array_diff_assoc() がどのように配列を比較し、相違点を見つけるかを見てみましょう。

次の 2 つの配列があります:

$arr1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$arr2=array("a"=>"orange","b"=>"green","e"=>"red","r"=>"yellow");

1. array_diff() 関数を使用します -- 配列のキー値を比較します

array_diff($arr1,$arr2...)関数は配列のキー値のみを比較し、差分配列を返します。差分配列の要素は比較された配列に存在します$arr1 にはありますが、他のパラメータ配列 $arr2... には存在しません。

上の例を見てみましょう。

$arr1 配列と $arr2 配列を比較すると、$ 内にのみ存在するキー値がarr1 配列は「 blue」であるため、出力結果は

PHP 配列の学習: 2 つの配列を比較して差分セットを見つける方法

2 となります。array_diff_key() 関数を使用して、配列のキー名

array_diff_key($arr1,$arr2...)この関数は配列のキー名のみを比較し、差分配列も返します。差分配列の要素は、##$arr1 の比較配列# には存在しますが、他のパラメーター配列 $arr2... には存在しません。

上記の例では、

$arr1 配列と $arr2 配列の 2 つのキー名が異なり、配列 $arr1## が使用されています。 # ""c"=>"blue"" と ""d"=>" yellow"" という値が取得されるため、出力結果は次のようになります。

PHP 配列の学習: 2 つの配列を比較して差分セットを見つける方法

3. array_diff_assoc() 関数を使用します - 配列のキー名とキー値を比較します

array_diff_assoc($arr1, $arr2...)

関数は配列のキー名とキー値を比較し、差分配列も返します。差分セットの要素は、array_diff() や array_diff() のように比較された配列から取得されます。 array_diff_key() $arr1 から取得します。 上記の例では、

$arr1

配列と $arr2 配列が比較されており、3 つの異なる要素があり、それらに基づいて値が取得されます。配列 $arr1。" "a"=>"red"", ""c"=>"blue"", ""d"=&gt ;" yellow"" であるため、出力結果は次のようになります:

PHP 配列の学習: 2 つの配列を比較して差分セットを見つける方法わかりました。これですべてです。他に知りたいことがある場合は、これをクリックしてください。 → →

php ビデオ チュートリアル

最後に、PHP 配列に関する無料のビデオ チュートリアルをお勧めします。

PHP 関数 配列 配列関数のビデオ説明

、ぜひ学んでください。

以上がPHP 配列の学習: 2 つの配列を比較して差分セットを見つける方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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