2016-10-21 4 views
1

Кажется, довольно основной вопрос, но как я могу упростить массив, такие как:Как упростить массив PHP

Array 
(
    [0] => Array 
     (
      [blue_dog_1] => 2 
     ) 
    [1] => Array 
     (
      [red_dog_1] => 4 
     ) 
    [2] => Array 
     (
      [red_dog_2] => 6 
     ) 
) 

Быть как:

Array 
(
    [blue_dog_1] => 2 
    [red_dog_1] => 4 
    [red_dog_2] => 6 
) 

Спасибо заранее.

ответ

9

Попробуйте способ сделать это единый размер от нескольких измерении с помощью array_merge

$singleD = array_reduce($multiD, 'array_merge', array()); 

ИЛИ

$singleD = call_user_func_array('array_merge', $multiD); 
+2

Эта первая опция 'array_reduce' превосходна, намного чище, чем использование цикла. https://3v4l.org/pNjYj – jszobody

+0

Это тоже помогло мне, спасибо! –

+1

@MatthewWoodard, рад, что он работает для вас, на самом деле существует различный способ сделать многомерный массив одномерным, но мне больше нравится array_merge. –

1

Попробуйте это,

foreach($array as $sub_val) 
{ 
    foreach($sub_val as $key=>$val) 
    { 
     $new_array[$key] = $val; 
    } 
} 
print_r($new_array); 
+0

Это сработало для меня, спасибо! –

0

Для этого вы можете просто использовать array union operator ,

$oldData = array(
      0 => array('blue_dog_1'=>2), 
      1 => array('red_dog_1'=>4), 
      2 => array('red_dog_2'=>6) 
     ); 

$newData = array(); 
foreach ($oldData as $arrayData) { 
    $newData += $arrayData; 
} 

print_r($newData); 
Смежные вопросы