即時嘗試將兩個數組合並在一起。都有數字鍵並且是唯一的。當我使用array_merge,它重新索引從0開始。合併兩個數組,同時保持數字鍵
所以可以說我有
[2] = abc
[5] = cde
和我有
[32] = fge
[13] = def
我想合併這兩個一起保持唯一的密鑰。
下面是對當前合併行爲的解釋..有什麼辦法可以解決這個問題?
「如果所有數組都只包含數字鍵,則結果數組會從零開始遞增鍵」。
即時嘗試將兩個數組合並在一起。都有數字鍵並且是唯一的。當我使用array_merge,它重新索引從0開始。合併兩個數組,同時保持數字鍵
所以可以說我有
[2] = abc
[5] = cde
和我有
[32] = fge
[13] = def
我想合併這兩個一起保持唯一的密鑰。
下面是對當前合併行爲的解釋..有什麼辦法可以解決這個問題?
「如果所有數組都只包含數字鍵,則結果數組會從零開始遞增鍵」。
嘗試使用+
運算符。
$one = array(2 => 'abc', 5 => 'cde');
$two = array(32 => 'fge', 13 => 'def');
$three = $one + $two;
$three
現在應該是這樣的:
[2] = abc
[5] = cde
[32] = fge
[13] = def
試試這個:
$arr1 = array();
$arr2 = array();
$arrmerge = array();
array_push($arr, $arr1, $arr2);
$ ARR1和$ ARR2將合併,並存儲在$ arrmerge。您可以通過foreach訪問它。
希望它的作品!
$result = array(2 => 'abc', 5 => 'cde') + array(32 => 'fge', 13 => 'def');
print_r($result);
如果要合併與數字鍵排列,保持鍵和從第二個項目覆蓋從第一數組項:
$a = array(0 => "a", 1 => "b");
$b = array(1 => "c", 5 => "d");
var_dump(array_diff_key($a, $b) + $b);
會產生:
array(3) {
[0]=>
string(1) "a"
[1]=>
string(1) "c"
[5]=>
string(1) "d"
}
其實也沒什麼,這會創建一個多維數組'array($ arr1,$ arr2)'。 – deceze 2010-08-03 02:40:50