Объединить / объединить 2 массива при повторной индексации в PHP

#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 — спасибо… это объяснение имеет большой смысл.