2016-12-14 100 views
0

我有4个数组,我需要通过按键结合“0”:结合阵列,相同的密钥

Array 
    (
    [0] => 1 
    [1] => Array 
    (
     [0] => A 
     [1] => B 
     [2] => C 
    ) 

) 

Array 
    (
    [0] => 2 
    [1] => Array 
    (
     [0] => D 
     [1] => E 
     [2] => F 
    ) 

) 


Array 
    (
    [0] => 1 
    [1] => Array 
    (
     [0] => G 
     [1] => H 
     [2] => I 
    ) 

) 


Array 
    (
    [0] => 2 
    [1] => Array 
    (
     [0] => J 
     [1] => K 
     [2] => L 
    ) 

) 

我需要得到的是组合阵列看起来应该像这样的:

Array 
    (
    [0] => 1 
    [1] => Array 
    (
     [0] => A 
     [1] => B 
     [2] => C 
     [3] => G 
     [4] => H 
     [5] => I 
    ) 

) 

Array 
    (
    [0] => 2 
    [1] => Array 
    (
     [0] => D 
     [1] => E 
     [2] => F 
     [3] => J 
     [4] => K 
     [5] => L 
    ) 

) 

我试着用array_merge_recursive但没有成功。 也在这里搜索,对不起,如果重复 在此先感谢帮助!

+1

_sorry如果duplicated_?如果重复,然后使用原帖的答案,而不是转贴 –

+0

我提到我已经搜索,但无法找到 – Pecooou

回答

0

试试这个:

$init = array(
    array(1, array('A', 'B', 'C')), 
    array(2, array('D', 'E', 'F')), 
    array(1, array('G', 'H', 'I')) 
); 

$results = array(); 

foreach ($init as $array){ 
    $found = false; 
    foreach ($results as &$result){ 
     if ($array[0] === $result[0]){ 
      $result[1] = array_merge($result[1], $array[1]); 
      $found = true; 
     } 
    } 
    if (!$found){ 
     $results[] = $array; 
    } 
} 
+0

为什么要OP“试试这个”?一个好的答案**将总是解释所做的事情以及为什么这样做,不仅是为了OP,而且是为了将来SO的访问者。 –