2016-12-29 2 views
0

У меня есть следующий массив:Объединение внутрипартийных внутренних массивов массива

Array (  
     [0] => Array 
       (
        [0] => 1 
        [1] => 2 
        [2] => 3 

       ) 

     [1] => Array 
       (
        [0] => Array 
         (
          [0] => 1 
          [1] => 2 
         ) 
        [1] => Array 
         ( 
          [0] => 3 
          [1] => 4 
         ) 
       ) 
    ) 

То, что я хочу сделать, это объединить воедино внутренние массивы [1], чтобы дать мне новый массив, который выглядит примерно так:

Array ( 
     [0] => Array 
         (
          [0] => 1 
          [1] => 2 
          [2] => 3 

         ) 
     [1] => Array 
         (
          [0] => 1 
          [1] => 2 
          [2] => 3 
          [4] => 4 
         ) 
    ) 

Любые советы о том, как я могу это сделать, пожалуйста? Благодаря

ответ

1
<?php 

$arr = array(
    0 => array(
     0 => 1, 
     1 => 2, 
     2 => 3 
    ), 
    1 => array(
     0 => array(
      0 => 1, 
      1 => 2 
     ), 
     1 => array( 
      0 => 3, 
      1 => 4 
     ) 
    ) 
); 

for ($i = 0; $i < count($arr); $i++) { 
    $fixedArray = array(); 

    foreach ($arr[$i] as $key => $value) { 
     if (!is_array($value)) continue; 

     foreach ($value as $subKey => $subValue) 
      $fixedArray[] = $subValue; 
    } 

    if (count($fixedArray) > 0) 
     $arr[$i] = $fixedArray; 
} 

print_r($arr); 

?> 

Выходы:

Array 
(
    [0] => Array 
     (
      [0] => 1 
      [1] => 2 
      [2] => 3 
     ) 

    [1] => Array 
     (
      [0] => 1 
      [1] => 2 
      [2] => 3 
      [3] => 4 
     ) 

) 

Вот один из способов сделать это, не говоря, что это самый лучший способ, но он работает.

+0

Спасибо, делает работу! –

1

Это шахта:

<?php 
$multiArray = [ 
    0 => [ 
     0 =>1, 
     1 => 2, 
     2 => 3 
    ], 
    1 => [ 
     0 => [ 
      0 => 1, 
      1 => 2 
     ], 
     1 => [ 
      0 => 3, 
      1 => 4 

     ] 
    ] 
]; 

$aux = []; 
foreach($multiArray as $key => $arr){ 
    foreach($arr as $k =>$a){ 
     if (is_array($a)){ 
      $aux= $arr; 
      break; 
     } 
    } 
} 

list($item1, $item2) = $aux; 
$new = array_merge($item1, $item2); 
$multiArray[1] =$new; 
print_r($multiArray); 
?> 
Смежные вопросы