Подтвердить что ты не робот

Объединение двух массивов в виде пар ключевых значений в PHP

У меня есть два массива того же размера. Я бы хотел объединить два, поэтому значения одного являются ключевыми индексами нового массива, а значения нового массива - значениями другого.

Сейчас я просто перебираю массивы и создаю новый массив вручную, но у меня есть ощущение, что есть намного более элегантный способ сделать это. Я не вижу никаких функций массива для этой цели, но, может быть, я что-то пропустил? Есть ли простой способ для этого в этом направлении?

$mapped_array = mapkeys($array_with_keys, $array_with_values);
4b9b3361

Ответ 2

(из документов для удобного чтения)

array_combine - создает массив с использованием одного массива для ключей, а другой для его значений

Описание

array array_combine ( array $keys , array $values )

Создает массив, используя значения из массива ключей как ключи и значения из массива значений в качестве соответствующих значений.

Параметры

Клавиши

- массив ключей, которые будут использоваться. Недопустимые значения для ключа будут преобразованы в строку.

values ​​- массив значений, которые будут использоваться

Пример

<?php
$a = array('green', 'red', 'yellow');
$b = array('avocado', 'apple', 'banana');
$c = array_combine($a, $b);

print_r($c);
?>

Вышеприведенный пример выводит:

Array
(
    [green]  => avocado
    [red]    => apple
    [yellow] => banana
)

Ответ 3

Это должно сделать трюк

function array_merge_keys($ray1, $ray2) {
    $keys = array_merge(array_keys($ray1), array_keys($ray2));
    $vals = array_merge($ray1, $ray2);
    return array_combine($keys, $vals);
}