Intereting Posts
SimpleXML – добавить новый узел, используя ранее объявленное пространство имен – как? считать новые строки в textarea для изменения размера контейнера в PHP? отправка электронной почты с помощью функции php mail распространяется на спам Как включить завиток, установленный стек Ubuntu LAMP? PHP, Объединение массивов с помощью общих ключей PHP: возвращает все даты между двумя датами в массиве Настройка переменных среды со встроенным веб-сервером PHP Как сделать калькулятор в PHP? Пакеты Composer, автозагрузка неклассифицированных файлов MySQL: объединение запросов через несколько баз данных, расположенных на разных серверах Который быстрее и лучше, Switch Case или если что-то еще, если? вставить массив в строку, разделенную запятыми, из запроса mysql php curl post данные, чтобы получить форму, указанную в URL Цепочки выбора (Страна, Штат, Город) Как получить значение из массива

Объединение нескольких ассоциативных массивов в один массив ассоциативных массивов

У меня есть 4 ассоциативных массива, как показано ниже:

$ids = array( '0' => '7' , '1' => '8' , '2' => '9' ); $names = array ( '0' => 'Name 1' , '1' => 'Name 2' , '2' => 'another name' ); $marks = array( '0' => '8' , '1' => '5' , '2' => '8' ); §grade = array( '0' => '4' , '1' => '2.5' , '2' => '4' ); 

Я хочу «объединить» их в один массив, содержащий ассоциативные массивы, как показано ниже:

 $data = array( array( 'id' => '7' , 'name' => 'Name 1' , 'marks' => '8', 'grade' => '4' ), array( 'id' => '8' , 'name' => 'Name 2' , 'marks' => '5', 'grade' => '2.5' ), array( 'id' => '9' , 'name' => 'another name', 'marks' => '8', 'grade' => '4' ) ); 

Я новый разработчик PHP и понятия не имею, как это сделать. Ваша помощь будет высоко оценена. спасибо

Я считаю, что это ваш массив

 $ids = array('0' => '7','1' => '8','2' => '9'); $names = array('0' => 'Name 1','1' => 'Name 2','2' => 'another name'); $marks = array('0' => '8','1' => '5','2' => '8'); $grade = array('0' => '4','1' => '2.5','2' => '4'); #New Keys $keys = array("id","name","marks","grade"); 

A. Вы можете использовать MultipleIterator

 $final = array(); $mi = new MultipleIterator(); $mi->attachIterator(new ArrayIterator($ids)); $mi->attachIterator(new ArrayIterator($names)); $mi->attachIterator(new ArrayIterator($marks)); $mi->attachIterator(new ArrayIterator($grade)); foreach ( $mi as $value ) { $final[] = array_combine($keys, $value); } var_dump($final); 

B. Вы можете использовать array_map

 $final = array(); foreach ( array_map(null, $ids, $names, $marks, $grade) as $key => $value ) { $final[] = array_combine($keys, $value); } var_dump($final); 

Вывод

 array 0 => array 'id' => string '7' (length=1) 'name' => string 'Name 1' (length=6) 'marks' => string '8' (length=1) 'grade' => string '4' (length=1) 1 => array 'id' => string '8' (length=1) 'name' => string 'Name 2' (length=6) 'marks' => string '5' (length=1) 'grade' => string '2.5' (length=3) 2 => array 'id' => string '9' (length=1) 'name' => string 'another name' (length=12) 'marks' => string '8' (length=1) 'grade' => string '4' (length=1)