ホームページ >毎日のプログラミング >PHPの知識 >2 つの PHP 多次元配列を比較する方法
# 2 つの多次元配列が等しいかどうか、またはどの要素が異なるかを判断します。 PHP の array_udiff() 関数、create_function() メソッド、strcmp () およびその他の関数を通じて比較を行うことができます。
次に、2 つの 2 次元配列を比較する方法を、具体的なコード例とともに紹介します。
コード例は次のとおりです。
<?php //多维数组比较 $color1 = array(array('Red',80),array('Green',70),array('white',60)); $color2 = array(array('Green',70),array('Black',95)); $color = array_udiff($color1,$color2,create_function( '$a,$b','return strcmp(implode("",$a),implode("",$b));') ); echo "<pre class="brush:php;toolbar:false">"; print_r($color);
このコードでは、$color2 配列と比較して、$color1 配列のさまざまな配列要素を取得できます。
出力された比較結果は次のとおりです:
関数の紹介:
1. array_udiff: コールバック関数を使用してデータを比較し、配列の差分セットを計算します
array_udiff ( array $array1 , array $array2 [, array $... ], callable $value_compare_func ) : arrayコールバック関数を使用してデータを比較し、配列間の違い。 array_diff() とは異なり、前者はデータ比較に組み込み関数を使用します。 パラメータ array1 は最初の配列を表します。 array2 2 番目の配列。 value_compare_func コールバック比較関数。 最初の引数が 2 番目の引数より小さい、等しい、または大きい場合、比較関数はそれに応じて 0 より小さい、0 と等しい、または 0 より大きい整数を返さなければなりません。 callback (mixed $a,mixed $b): int戻り値、array1 内の他のパラメータに現れないすべての値を返します。
2, create_function: 匿名関数の作成
create_function ( string $args , string $code ): string渡されたパラメータに基づいて匿名関数を作成し、割り当てますit to 一意の名前を返します。 通常、これらのパラメータは一重引用符で区切られた文字列として渡されます。一重引用符で囲んだ文字列を使用する理由は、変数名が解析されないように保護するためです。そうでない場合、二重引用符を使用する場合は、変数名をエスケープする必要があります (\$avar など)。
3. strcmp: バイナリ セーフな文字列比較
strcmp ( string $str1 , string $str2 ) : intこの比較では大文字と小文字が区別されることに注意してください。 パラメータ str1 は最初の文字列を表します。 str2 は 2 番目の文字列を表します。 戻り値は、str1 が str2 より小さい場合は 0 を返し、str1 が str2 より大きい場合は 0 を返します。
4. implode: 1 次元配列の値を文字列に変換する
この記事では、2 つの PHP 多次元配列を比較する方法について説明します。シンプルでわかりやすいので、困っている友達に役立つことを願っています。以上が2 つの PHP 多次元配列を比較する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。