2011-03-12 83 views
0

如何合併2個數組到$array3合併陣列,而不會產生密鑰

$array1 = array('first', 'second'); 
$array2 = array('third', 'fourth'); 

$array3 = array('first', 'second', 'third', 'fourth'); 

所有功能我發現添加把它變成一個關聯數組[0] =>「第一」密鑰。我不想要這個。我希望它保持爲僅字符串數組。

回答

3

陣列做總是有一個索引/鍵但它們可使用時可以省略array() language constructor

如果沒有爲值指定的密鑰,最大的整數索引的取和的新的密鑰將是值加1

所以array('first', 'second', 'third', 'fourth')相同array(0 => 'first', 1 => 'second', 2 => 'third', 3 => 'fourth')

$a = array('first', 'second', 'third', 'fourth'); 
$b = array(0 => 'first', 1 => 'second', 2 => 'third', 3 => 'fourth'); 
var_dump($a === $b); // bool(true) 
var_dump(var_export($a, true) === var_export($b, true)); // bool(true) 

所以只需使用array_merge

$array3 = array_merge($array1, $array2); 
2
$array3 = array_merge($array1, $array2); 

文檔:http://php.net/array_merge

的[0],[1]等的鍵是您的數組的缺省項 - 每一個陣列具有它們。

+0

事實上,人們從其他語言,這可能是混亂的,但在[陣列上手動](第一句http://php.net/manual/en/ language.types.array.php)說明了一切:_'PHP中的數組實際上是一個有序的映射。 「_ – Wrikken 2011-03-12 10:10:44

1

你總是有你的元素的鑰匙。試試這個:

print_r($array1); 

你會看到[0] =>「第一」

這不是跟你使用合併功能的一個問題 - 鍵簡單始終存在。 Probaly你正在尋找解決方案不好 - 不要搜索如何擺脫索引,但嘗試重寫你的解決方案,其中索引將沒有任何意義。