2016-12-14 3 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. –

Смежные вопросы