我不想使用array_merge()
,因爲它導致
我誤解了所有具有相同鍵的值都會被覆蓋。我有兩個數組用數字鍵組合兩個數組而不覆蓋舊鍵
$array1 = array(0=>'foo', 1=>'bar');
$array2 = array(0=>'bar', 1=>'foo');
,並想將它們組合起來產生這樣
array(0=>'foo', 1=>'bar',2=>'bar', 3=>'foo');
我不想使用array_merge()
,因爲它導致
我誤解了所有具有相同鍵的值都會被覆蓋。我有兩個數組用數字鍵組合兩個數組而不覆蓋舊鍵
$array1 = array(0=>'foo', 1=>'bar');
$array2 = array(0=>'bar', 1=>'foo');
,並想將它們組合起來產生這樣
array(0=>'foo', 1=>'bar',2=>'bar', 3=>'foo');
array_merge()
追加第二陣列到第一值。它不會覆蓋密鑰。
你的例子,結果在:
陣列( [0] => FOO [1] =>巴 [2] =>巴 [3] =>富)
但是,If the input arrays have the same string keys, then the later value for that key will overwrite the previous one. If, however, the arrays contain numeric keys, the later value will not overwrite the original value, but will be appended.
除非這僅僅是您遇到的另一個問題的示例嗎?
這是否回答你的問題?我不知道究竟你要完成什麼,但是從你的描述聽起來這將工作:
$array1 = array(0=>'foo', 1=>'bar');
$array2 = array(0=>'bar', 1=>'foo');
foreach ($array2 as $i) {
$array1[] = $i;
}
echo var_dump($array1);
可能有更好的方法,但怎麼樣:
$newarray= array();
$array1 = array(0=>'foo', 1=>'bar');
$array2 = array(0=>'bar', 1=>'foo');
$dataarrays = array($array1, $array2);
foreach($dataarrays as $dataarray) {
foreach($dataarray as $data) {
$newarray[] = $data;
}
}
print_r($newarray);
$result = array_keys(array_merge(array_flip($array1), array_flip($array2)));
var_dump($result);
哎呦,我只讀了手動和MISSE該位,只保留了閱讀的東西會覆蓋 – Moak 2010-11-14 08:06:32