2014-01-16 19 views
1

我想在PHP检查两个数组的值如何通过检查键值对两个数组的一个元素的一个数组的内容合并到另一个阵列相同

样品阵列是合并两个数组这样,第一阵列

Array 
(
    [0] => Array 
     (
     [studentName] => XYZ 
     [studentId] => 690 
     [rollNo] => 36  
    ) 

    [1] => Array 
    (
     [studentName] => ABC 
     [studentId] => 729 
     [rollNo] => 37  
    ) 
) 

我的第二个数组是:

Array 
(
    [0] => Array 
    (
     [attendanceCode] => 13 
     [studentId] => 690 
    ) 

    [1] => Array 
    (
     [attendanceCode] => 14 
     [studentId] => 729 
    ) 
) 

不,我想添加[attendanceCode]键和值到第一阵列只有两个阵列的是同一

我的样品进行放应该如下:

Array 
(
    [0] => Array 
     (
     [studentName] => XYZ 
     [studentId] => 690 
     [rollNo] => 36 
     [attendanceCode] => 13 
    ) 

    [1] => Array 
    (
     [studentName] => ABC 
     [studentId] => 729 
     [rollNo] => 37 
     [attendanceCode] => 14 
    ) 
) 

回答

1
<?php 
    $combined_array = array(); 
    foreach($array1 as $key => $a) 
    { 
     $combined_array[] = array_merge($array1[$key], $array2[$key]); 
    } 
?> 

或做

$combined_array = array_merge_recursive($array1, $array2); 
0

尝试下面的代码,用这个你不需要担心索引的阵列

<?php 
$arr1 = array(
      array('studentName'=> 'XYZ', 
      'studentId'=> 690 , 
      'rollNo'=> 36, 
      ), 
      array('studentName'=> 'ABC', 
      'studentId'=> 729 , 
      'rollNo'=> 37, 
      ) 
     ); 

$arr2 = array(
      array('attendanceCode'=> '14', 
      'studentId'=> 729 , 
      ), 
      array('attendanceCode'=> '13', 
      'studentId'=> 690 
      ) 

     ); 

$combined_array = array(); 
if(is_array($arr1)){ 
    foreach($arr1 as $key=>$val){ 
     if(is_array($arr2)){ 
      foreach($arr2 as $k1=>$v1){  
       if($v1['studentId'] == $val['studentId']){ 
        $combined_array[] = array_merge($val, $v1); 
        break; 
       } 
      } 
     } 
    } 
} 
相关问题