2016-07-12 132 views
0
array (size=1) 
    11 => 
    array (size=1) 
     'subject' => 
     array (size=1) 
      'Maths' => string '21' (length=2) 

array (size=1) 
    10 => 
    array (size=1) 
     'subject' => 
     array (size=1) 
      'Maths' => string '10' (length=2) 

array (size=1) 
    11 => 
    array (size=1) 
     'subject' => 
     array (size=1) 
      'Gujarati' => string '21' (length=2) 

array (size=1) 
    10 => 
    array (size=1) 
     'subject' => 
     array (size=1) 
      'Gujarati' => string '20' (length=2) 

数组键重复像11和10如何合并数组键在PHP

我的问题: 如何创建下面输出数组。

array (size=1) 
    11 => 
    array (size=1) 
     'subject' => 
     array (size=1) 
      'Maths' => string '21' (length=2) 
     'Gujarati' => string '21' (length=2) 

array (size=1) 
    10 => 
    array (size=1) 
     'subject' => 
     array (size=1) 
      'Maths' => string '10' (length=2) 
     'Gujarati' => string '20' (length=2) 
+0

[合并阵列使用相同的按键(http://stackoverflow.com/questions/5881443/merging-arrays-with-the-same-keys)的可能的复制 – user3528269

+0

@ user3528269我不知道 – kishankakadiya

+0

请输入@ user3528269以上输出写入代码 – kishankakadiya

回答

0

使用此功能可以得到您的结果。 顺便说一句:只是一次又一次地寻求帮助,而不会自己调查是不好的行为,如果有人指您一个函数(如array_merge_recursive),您至少应该花一些时间来RTM。

function array_merge_recursive_new() { 

    $arrays = func_get_args(); 
    $base = array_shift($arrays); 

    foreach ($arrays as $array) { 
     reset($base); //important 
     while (list($key, $value) = @each($array)) { 
      if (is_array($value) && @is_array($base[$key])) { 
       $base[$key] = array_merge_recursive_new($base[$key], $value); 
      } else { 
       $base[$key] = $value; 
      } 
     } 
    } 

    return $base; 
} 

来源/版权所有: http://php.net/manual/en/function.array-merge-recursive.php#106985

我与这些阵列,这应该是一样的,你让他们进行了测试。

$arr1 = array(
    10 => array("subject" => array("math" => 1)), 
    11 => array("subject" => array("math" => 2)), 
); 

$arr2 = array(
    10 => array("subject" => array("guawhatever" => "foo")), 
    11 => array("subject" => array("guawhatever" => "bar")), 
); 
$blubb = array_merge_recursive_new($arr1,$arr2); 
+0

你写我的问题代码和下面的输出显示数组(大小= 1) 11 => array(size = 1) 'subject' => 阵列(大小= 1) '数学'=>字符串 '21'(长度= 2) '古吉特拉'=>字符串 '21'(长度= 2) 阵列(大小= 1) 10 = >'012'(长度= 2) 'Gujarati'=>字符串'20'(长度= 2) array(size = 1) 'subject'=> array(size = 1) 'Maths'=> ) – kishankakadiya