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

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

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

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

См. array_combine() на PHP.net.

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

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

Описание

array array_combine ( array $keys , array $values )

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

параметры

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

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 ) 

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

 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); }