#php #arrays
#php #массивы
Вопрос:
Я думаю, что есть функция для того, что я хочу, но я не могу найти ее в документах PHP. Давайте представим, что у меня есть следующие массивы:
$first = array(
0 => 'howdy',
1 => 'hello',
2 => 'wassup'
);
$second = array(
0 => 'aloha',
1 => 'yo',
2 => 'hi'
);
В конце концов, я хочу объединить их, чтобы они были чем-то вроде:
array(
0 => 'howdy',
1 => 'hello',
2 => 'wassup',
3 => 'aloha',
4 => 'yo',
5 => 'hi'
)
Два важных критерия:
1) Никакие значения с эквивалентными ключами или значениями не перезаписываются
2) Массив переиндексируется, сохраняя порядок ключей в отдельных массивах, а значения первого массива имеют более низкие значения ключей, чем во втором массиве.
Я знаю, как я мог бы сделать это, написав функцию, но я клянусь, что есть функция PHP, которая это делает, и я хочу использовать ее, если кто-нибудь сможет ее идентифицировать для меня.
Комментарии:
1. Вы столкнетесь с ладонью, когда поймете, насколько очевидно решение
2. @Phil — Клянусь вам, сегодня я прочитал документ array_merge 3 раза. ВАУ! Выкл. My. Game.
Ответ №1:
Я думаю, вы ищете array_merge()
:
array_merge($first, $second);
Результат:
Массив ( [0] => привет [1] => привет [2] => wassup [3] => алоха [4] => yo [5] => привет )
Комментарии:
1. Спасибо you…it работает. Пример # 3 в документе создавал впечатление, что значения с одним и тем же ключом будут перезаписаны.
2. Чтобы уточнить, прочитайте это утверждение с той же страницы: если входные массивы имеют одинаковые строковые ключи, то более позднее значение для этого ключа перезапишет предыдущее. Однако, если массивы содержат цифровые ключи, более позднее значение не будет перезаписывать исходное значение, а будет добавлено.
3. TimCooper — у меня плохой день 😉 Я хотел сказать Пример № 2. @danontheline — спасибо… это объяснение имеет большой смысл.