Необходимо объединить два массива в один.
Используйте функцию array_merge():
$garden = array_merge($fruits, $vegetables);
Функция array_merge() работает и с заранее определенными массивами и с массивами, определенными на месте с помощью функции array():
$p_languages = array('Perl', 'PHP');
$p_languages = array_merge($p_languages, array('Python'));
print_r($p_languages);
Array
(
[0] => PHP
[1] => Perl
[2] => Python
)
Соответственно, соединенными массивами могут стать или существующие массивы, как в случае с $p_languages, или безымянные массивы, как в случае с array('Python').
Нельзя использовать функцию array_push(), поскольку PHP не будет
автоматически раскладывать массив в последовательность независимых переменных, и в результате получится вложенный массив. Так:
array_push($p_languages, array('Python'));
print_r($p_languages);
Array
(
[0] => PHP
[1] => Perl
[2] => Array
(
[0] => Python
)
)
Соединение массивов только с числовыми ключами приводит к перенумерации массивов, поэтому значения не теряются. Объединение массивов со строковыми ключами приведет к тому, что второй массив перепишет значения для всех двойных ключей. Массивы с обоими типами ключей наследуют оба типа поведения. Например:
$lc = array('a', 'b' => 'b'); // буквы в нижнем регистре в качестве значений
$uc = array('A', 'b' => 'B'); // буквы в верхнем регистре в качестве значений
$ac = array_merge($lc, $uc); // все регистры?
print_r($ac);
Array
(
[0] => a
[b] => B
[1] => A
)
Буква «A» в верхнем регистре поменяла свой индекс с 0 на 1, чтобы избежать коллизий, и добавилась в конец. Буква «B» в верхнем регистре
переписала букву «b» и встала на ее исходное место внутри массива.
С помощью оператора "+" также можно соединять массивы. Массив с
правой стороны переписывает любой аналогично названный ключ,
найденный в массиве слева. Не делается никакого переупорядочения
для предотвращения коллизий. Используем предыдущий пример:
print_r($a + $b);
print_r($b + $a);
Array
(
[0] => a
[b] => b
)
Array
(
[0] => A
[b] => B
)
Так как a и A обе имеют ключ 0, а b и B обе имеют ключ b, то в результате в объединенном массиве будут только два элемента.
В первом случае $a + $b превращается только в $b, а в другом случае
$b + $a становится $a.
Однако если бы оба массивы были снабжены очевидными ключами, то
проблемы бы не было, и новый массив был бы объединением двух массивов.