2 つの配列が等しいかどうかを判断するにはどうすればよいですか?実際は非常に簡単で、 == または === を使用するだけです
PHPマニュアルの手順は次のとおりです。
名前の結果の例
$a + $b Union $a と $b の和集合。
$a と $b が同じキー/値ペアを持つ場合、$a == $b は TRUE に等しくなります。
$a === $b Congruent $a と $b が同じキー/値ペアを持ち、同じ順序と型である場合に TRUE。
$a が $b と等しくない場合、$a != $b は TRUE と等しくなりません。
$a <> $a が $b と等しくない場合、$b は TRUE と等しくなりません。
$a !== $b は等しくない $a が $b と等しくない場合は TRUE。
上記の方法を使用して、array('k'=>array()) のような多次元配列を等しくすることはできますか?もちろんできます。
配列が数値的にインデックス付けされている場合は、注意してください。コードを参照してください
[php]
$a = array("リンゴ", "バナナ");
$b = array(1 => "バナナ", "0" => "リンゴ");
var_dump($a == $b); // bool(true)
var_dump($a === $b); // bool(false)
?>
$a = array("リンゴ", "バナナ");
$b = array(1 => "バナナ", "0" => "リンゴ");
var_dump($a == $b) // bool(true)
?>
配列演算子 == に加えて、さらに複雑な判定方法があります。たとえば、array_diff($a, $b) を使用して、2 つの配列の差分セットを比較します。差分セットが NULL の場合、それらは等しいことになります。
それでは、配列の + プラス演算子について話しましょう。 + と array_merge の違いは、等しいキーに遭遇した場合、+ を使用すると、左側の配列が右側の配列の値を上書きするのに対し、array_merge では、後の配列が前の配列を上書きすることです。
$a = array("a" => "リンゴ", "b" => "バナナ");
$b = array("a" => "梨", "b" => "イチゴ", "c" => "サクランボ");
$c = $a + $b // $a と $b の結合
;
echo "$a と $b の和集合: n";
var_dump($c);
$c = array_merge($a, $b) // $b と $a の結合
;
echo "$b と $a の配列マージ: n";
var_dump($c);
?>
$a = array("a" => "リンゴ", "b" => "バナナ");
$b = array("a" => "梨", "b" => "イチゴ", "c" => "サクランボ");
$c = $a + $b // $a と $b の結合
;
echo "$a と $b の和集合: n";
var_dump($c);
$c = array_merge($a, $b) // $b と $a の結合
;
echo "$b と $a の array_merge: n";
var_dump($c);
[php]
配列(3) {
["a"]=>
string(5) "リンゴ"
["b"]=>
string(6) "バナナ"
["c"]=>
string(6) "チェリー"
$b と $a の array_merge:
配列(3) {
["a"]=>
string(4) "梨"
["b"]=>
string(10) "イチゴ"
["c"]=>
string(6) "チェリー"
}
$a と $b の和集合:
配列(3) {
["a"]=>
string(5) "リンゴ"
["b"]=>
string(6) "バナナ"
["c"]=>
string(6) "チェリー"
}
$b と $a の array_merge:
配列(3) {
["a"]=>
string(4) "梨"
string(10) "イチゴ"
["c"]=>
string(6) "チェリー"
}