Intereting Posts
Интеграция Google BigQuery с PHP Как установить имя хоста с помощью php curl для определенного ip Замените последнюю запятую знаком & Как переписать SEO дружественный url как stackoverflow Обновите содержимое div только в том случае, если в базу данных добавлен новый контент Предотвратить xdebug для разрыва в первой строке индексного файла Как отправить форму на две разные страницы в зависимости от нажатой кнопки, без javascript Добавление пользователей в группу интересов через MailChimp API версии 2.0 Как я могу получить содержимое загруженного файла в php? Локатор сервисов, Инъекция зависимостей (и контейнера) и инверсия управления Как установить расширение PHP локально на WAMP? Как автоматически определять часовой пояс пользователя? PHP для Javascript Array (вид) Запуск PHP: невозможно загрузить динамическую библиотеку, Windows, Apache 2.2, php 5.2.11 PHPUnit – создание объектов Mock для работы в качестве заглушек для свойств

PHP, Объединение массивов с помощью общих ключей

Мне нужно, чтобы два массива слились в один, сохраняя все ключи на месте и перечисляя значения в массиве, как в этом примере:

$array1 = array('car' => '3', 'bus' => '2'); $array2 = array('dog' => '1', 'car' => '2', 'bird' => '9'); $merged = array( 'car' => array('3','2'), 'bus' => array('2',null), 'dog' => array(null,'1'), 'bird' => (null,'9') ); 

Solutions Collecting From Web of "PHP, Объединение массивов с помощью общих ключей"

 function merge_common_keys(){ $arr = func_get_args(); $num = func_num_args(); $keys = array(); $i = 0; for ($i=0; $i<$num; ++$i){ $keys = array_merge($keys, array_keys($arr[$i])); } $keys = array_unique($keys); $merged = array(); foreach ($keys as $key){ $merged[$key] = array(); for($i=0; $i<$num; ++$i){ $merged[$key][] = isset($arr[$i][$key]) ? $arr[$i][$key] : null; } } return $merged; } 

Применение:

 $merged = merge_common_keys($array1,$array2); 

PS. Он может работать с более чем двумя массивами, просто передайте столько, сколько хотите, в качестве следующих аргументов.

Что-то вроде этого? http://php.net/array_merge_recursive