ホームページ  >  記事  >  バックエンド開発  >  PHPのarray_diff_assoc()関数の詳しい説明

PHPのarray_diff_assoc()関数の詳しい説明

PHP中文网
PHP中文网オリジナル
2017-10-27 09:43:264165ブラウズ

2 つの配列のキー名とキー値を比較し、その差を返します:

<?php
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("a"=>"red","b"=>"green","c"=>"blue");
$result=array_diff_assoc($a1,$a2);
print_r($result);
?>

定義と使用法

array_diff_assoc() 関数は、2 つ (またはそれ以上) のキー名とキー値を比較するために使用されます。 ) 配列、および差分セットを返します。

この関数は、2 つ (またはそれ以上) の配列のキー名とキー値を比較し、比較された配列 (array1) 内のすべての項目を含みますが、他のパラメーター配列 (array2) には含まれない差分配列を返します。または array3 など)。

構文

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

パラメータ構文他の配列と比較する最初の配列。

array2 必須。最初の配列と比較する配列。

array3,... オプション。最初の配列と比較する追加の配列。

差分配列を返します。これには、比較される配列 (array1) 内のすべてのキー名とキー値が含まれますが、他のパラメーター配列 (array2 や array3 など) には含まれません。

2 つの配列のキー名とキー値を比較し、差分セットを返します:

<?php
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("e"=>"red","f"=>"green","g"=>"blue");
$result=array_diff_assoc($a1,$a2);
print_r($result);
?>

3 つの配列のキー名とキー値を比較し、差分セットを返します:

<?php
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("a"=>"red","f"=>"green","g"=>"blue");
$a3=array("h"=>"red","b"=>"green","g"=>"blue");
$result=array_diff_assoc($a1,$a2,$a3);
print_r($result);
?>

1 つ: array_diff を使用すると array_diff_assoc Prelude

モールで開発 では、データの追加、削除、変更、確認が必要になることがよくあります。その中で、データを更新する場合、多くの場合、1 つのフィールドまたはフィールドの一部のみを更新する必要があり、すべてのフィールドをまとめて更新する必要はありません。そのため、ここでは、どのフィールドを更新する必要があるか、どのフィールドを更新するかを確認する必要があります。更新する必要はありません。 array_diff と array_diff_assoc はどちらも、データベースから取得した更新対象の古いデータ配列と送信された新しいデータ配列を比較するだけで済みます。array_diff と array_diff_assoc はどちらも差分配列を返すことができます。

2 さらに、対応するキー名が保持されます。ただし、この関数は多次元配列の最初の次元の差分比較のみを実行できます。さらに、この比較はキー値のみを比較し、キー名とは何の関係もありません (2 つ (またはそれ以上) の配列で異なるキー値を持つ値のみが検索されます)。

例: array_diff は 2 つの配列間の違い c_pid を見つけることができます:

ただし、配列のキー値が変更された値と重複する場合、次のように array_diff は変更された値を検出できません:

通常の状況では、array1 は無効化されます。 array2 の比較では、更新された要素は c_pid と c_order ですが、結果は c_order の違いだけです。なぜでしょうか。

個人的な理解: array_diff() は、キー名に関係なく、array1 の値と array2 の値を比較するため、array1 の c_pid の値は array2 の c_level で見つかるため、c_pid の違いは無視されます。

array_diff()

これについては、array_diff() と同じように使用されます。違いは、キー名を使用して比較されることです。つまり、同じキー名を持つ複数の配列が検索されます。つまり、上記の array_diff の 2 番目のケースでは、c_pid と c_order の違いを見つけることができます。信じられない場合は、試してみてください。私は初心者で、最初は何もかもが難しいです、私がブログ記事を書くのは初めてです、たとえいくつかの料理を注文したとしても、マスターの皆様には理解していただけると思います。

以上がPHPのarray_diff_assoc()関数の詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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