1. 程式人生 > >php如何實現數組合並但鍵值相同的陣列不互相覆蓋?

php如何實現數組合並但鍵值相同的陣列不互相覆蓋?

數組合並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') ?>