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

У меня есть 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 и не знаю, как этого добиться. Ваша помощь будет высоко ценится. Спасибо

Ответы на вопрос(1)

Решение Вопроса

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

$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");

, Вы можете использовать BMultipleIterator

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

, Ты можешь использовать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)
 Baba13 окт. 2012 г., 16:31
@Sepster спасибо .... уже исправили :)
 Baba13 окт. 2012 г., 16:33
@ Салим, пожалуйста
 Saleem13 окт. 2012 г., 16:38
Я получил эту ошибку array_combine () ожидает, что параметр 1 будет массивом, задан ноль
 Sepster13 окт. 2012 г., 16:29
+1 Я выучил 2x вещи, даже если у тебя нетt (пока ...) обратился к ключу $ => $ value проблема ;-) Хороший ответ, чувак.
 Saleem13 окт. 2012 г., 16:33
Спасибо, Баба и Сепстер :)
 Saleem13 окт. 2012 г., 16:45
Спасибо за ваше время, Баба, я получаю print_r следующим образом Array ([0] => 6 [1] => 7 [2] => 8) Массив ([0] => Студент 6 [1] => Test Student [2] => Студент 7) Массив ([0] => 9 [1] => 8 [2] => ) Array ([0] => 4.5 [1] => 4.25 [2] => ) Array ([0] => [1] => [2] =>)
 Saleem13 окт. 2012 г., 16:48
Прошу прощения за неприятности, мне не хватало $ keys = array ("Я бы","название","Метки","класс»); Вы, ребята, отлично, спасибо, Баба, за помощь
 Baba13 окт. 2012 г., 16:39
@ Салим, ваш массив должен быть изменен, работает отличноcodepad.viper-7.com/Owve46
 Baba13 окт. 2012 г., 16:28
@ Салим, хорошо, держись
 Saleem13 окт. 2012 г., 16:32
Как установить $ key => $ value Пожалуйста, помогите
 Saleem13 окт. 2012 г., 16:25
теперь внутренний массив - это массив 0 => строка '7' (длина = 1) 1 => строкаИмя 1 ' (длина = 6) 2 => строка «8» (длина = 1) 3 => строка "4" (длина = 1) мне нужно какid '=> '7', 'name '=> 'Имя 1 ','отмечает '=> '8', 'оценка '=> '4' Пожалуйста помоги
 Saleem13 окт. 2012 г., 17:08
Извините еще раз ... Как я могу добавить 2 [экзамен] => sameforall и [exam_id] => То же самое для каждого внутреннего массива.

Ваш ответ на вопрос