LoginSignup
1
2

More than 3 years have passed since last update.

phpで2つの配列のキーと値が同じであることを確認する

Last updated at Posted at 2017-05-29

以下のように、キーと値が同じであるが、順序が違う配列があるとします。

$array1 = [1 => 'apple', 2 => 'orange'];
$array2 = [2 => 'orange', 1 => 'apple'];

上記$array1 === $array2では同じと判定されません。

これをksortなどでソートしていたのでは処理が複雑になります。

1回で判定するには、



$array1 = [1 => 'apple', 2 => 'orange'];
$array1 = [2 => 'orange', 1 => 'apple'];
if (!array_diff_assoc($array1, $array1)) {
    echo '2つの配列のキーと値に差分はありません';
}

array_diff_assocは2つの配列のキーと値に差分が無ければ空の配列を返します。

上記のようにキーと値が同じであるが順序が違う配列であれば、同じであることの検証に使えます。

ただし以下のように、


$array1 = [1 => 'apple', 2 => 'orange'];
$array2 = [2 => 'orange', 1 => 'apple', 3 => 'banana'];
var_dump(array_diff_assoc($array1, $array2));
// []

キーと値が同じではない配列を比較する場合は同一であることの確認には使えません。

array_diff_assocは、array1の要素のうち、 その他の配列のいずれにも含まれないものだけを残した配列を返します。

詳細は以下よりご確認頂けます。
https://www.php.net/manual/ja/function.array-diff-assoc.php

1
2
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2