在PHP 中連接陣列:為什麼運算子會失敗
嘗試使用「 」運算子連接數組時,可能會遇到意外結果。考慮以下程式碼:
$array = array('Item 1'); $array += array('Item 2'); var_dump($array);
輸出:
array(1) { [0] => string(6) "Item 1" }
為什麼這不行?
鍵與重複項
問題在於陣列鍵與重複值。給定程式碼中的兩個陣列的鍵均為“0”,導致重複值相互覆蓋。為了保留原始順序並防止重複,PHP 使用鍵“0”的第一個值。
解:數組合併
要正確連接數組,請使用array_merge ():
$arr1 = array('foo'); // Same as array(0 => 'foo') $arr2 = array('bar'); // Same as array(0 => 'bar') $combined = array_merge($arr1, $arr2);
array_merge() 合併數組,保留鍵值對。
何時使用運算符
「 」運算子在組合具有不同鍵的陣列時仍然有用:
$arr1 = array('one' => 'foo'); $arr2 = array('two' => 'bar'); $combined = $arr1 + $arr2;
這將導致:
array('one' => 'foo', 'two' => 'bar');
總之,使用array_merge() 來連接陣列以保留順序並避免鍵衝突。使用“”運算符來合併具有唯一鍵的陣列。
以上是為什麼組合 PHP 陣列時 ( ) 運算子會失敗?的詳細內容。更多資訊請關注PHP中文網其他相關文章!