php如何實現數組合並但鍵值相同的陣列不互相覆蓋?
阿新 • • 發佈:2018-12-30
數組合並array_merge($arr1,$arr2)和陣列相加$arr1+$arr2的區別:
數字索引陣列:
array_merge:合併生成的陣列的索引統一從0開始,所以不存在覆蓋的情況.
"+"操作符:不改變數字索引,如果索引已經存在,則跳過該元素.
字元索引陣列:
array_merge:如果兩個陣列存在相同的鍵,後面的一個會覆蓋前面的.
"+"操作符:如果兩個陣列存在相同的鍵,前面的一個會覆蓋後面的.
<?php
$arr1 = array('k1' => 'a', 'k2' => 'b');
$arr2 = array('k1' => 'c', 'k2' => 'd' );
var_export(array_merge($arr1, $arr2)); // array('k1' => 'c', 'k2' => 'd')
var_export($arr1 + $arr2); // array('k1' => 'a', 'k2' => 'b')
?>
<?php
$arr1 = array(0 => 'a', 1 => 'b');
$arr2 = array(0 => 'c', 1 => 'd');
var_export(array_merge($arr1, $arr2)); // array (0 => 'a', 1 => 'b', 2 => 'c', 3 => 'd')
var_export($arr1 + $arr2); // array (0 => 'a', 1 => 'b')
?>