php 判斷兩個數組是否相等


如何判斷兩個數組相等呢?其實很簡單,用 == 或者 === 就可以了

那像 array('k'=>array())這樣的多維數組能用如上方法判斷相等嗎?當然也可以。
若數組是數字索引的,就要注意一下了,見代碼:

1 <?php
2     $a = array("apple", "banana");
3     $b = array(1 => "banana", "0" => "apple");
4 
5     var_dump($a == $b); // bool(true)
6     var_dump($a === $b); // bool(false)
7 ?>

除了==這種數組操作符之外,還有其他比較繞的方法來判斷。比如說,利用array_diff($a, $b)來比較兩個數組的差集,如果差集是空數組的話就相等了。
然后再說一下 數組的 + 加號運算符。+ 和 array_merge的區別在遇到相等key時,用+時,左邊數組會覆蓋掉右邊數組的值,array_merge相反,后面的數組覆蓋掉前面的。

 1 <?php
 2     $a = array("a" => "apple", "b" => "banana");
 3     $b = array("a" => "pear", "b" => "strawberry", "c" => "cherry");
 4 
 5     $c = $a + $b; // Union of $a and $b
 6     echo "Union of \$a and \$b: \n";
 7     var_dump($c);
 8 
 9     $c = array_merge($a, $b); // Union of $b and $a
10     echo "array_merge of \$b and \$a: \n";
11     var_dump($c);
12 ?>

執行后輸出:

Union of $a and $b:
array(3) {
  ["a"]=>
  string(5) "apple"
  ["b"]=>
  string(6) "banana"
  ["c"]=>
  string(6) "cherry"
}
array_merge of $b and $a:
array(3) {
  ["a"]=>
  string(4) "pear"
  ["b"]=>
  string(10) "strawberry"
  ["c"]=>
  string(6) "cherry"
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM