Ответ 1
См. array_combine()
на PHP.net.
У меня есть два массива того же размера. Я бы хотел объединить два, поэтому значения одного являются ключевыми индексами нового массива, а значения нового массива - значениями другого.
Сейчас я просто перебираю массивы и создаю новый массив вручную, но у меня есть ощущение, что есть намного более элегантный способ сделать это. Я не вижу никаких функций массива для этой цели, но, может быть, я что-то пропустил? Есть ли простой способ для этого в этом направлении?
$mapped_array = mapkeys($array_with_keys, $array_with_values);
См. array_combine()
на PHP.net.
(из документов для удобного чтения)
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
)
Это должно сделать трюк
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);
}