2012-10-13 109 views
1

我有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开发人员,不知道如何完成此任务。您的帮助将不胜感激。谢谢

回答

6

我相信这是你的阵列

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

一个。您可以使用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); 

。可以使用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) 
+0

现在内阵列是阵列 0 =>字符串 '7'(长度= 1) 1 =>串 '名字1'(长度= 6) 2 => string'8'(length = 1) 3 => string'4'(length = 1)我需要它作为'id'=>'7', 'name'=>'Name 1', 'marks'=>'8', 'grade'=>'4'请帮忙 – Saleem

+0

@Saleem ok保持 – Baba

+1

+1 I lea甚至如果你还没有(还有......)解决了$ key => $ value的问题;-)好的答案。 – Sepster