2009-08-17 3 views
1

У меня есть два последовательных (неассоциативных) массива, значения которых я хочу объединить в новый массив, игнорируя индекс, но сохраняя порядок. Есть лучшее решение (т.е. существующего оператора или функции), кроме сделайте следующее:Как добавить массив к другому массиву в PHP?

$a = array('one', 'two'); 
$b = array('three', 'four', 'five'); 

foreach($b as $value) { 
    $a[] = $value; 
} 

Примечание: оператор «+» здесь не работает («три» с индексом 0 перезаписывает «один» с индексный ноль). Функция array_merge имеет ту же проблему .

ответ

5

array_merge является то, что вы хотите, и я не думаю, что вы правильно с этой проблемой перезаписей. Из руководства:

Если, однако, массивы содержат числовые клавиши, более позднее значение не будет перезаписывать исходное значение, но будет добавлено.

+0

Спасибо, я был неправ. –

3

$a + $b on two arrays является объединением $a и $b:

Оператор + присоединяет элементы оставшихся ключей из правого передал массива в левой рукой, в то время как дублированные ключи не будут перезаписаны.

Так что используйте array_merge объединить оба массива:

$merged = array_merge($a, $b); 
Смежные вопросы