合并嵌套数组

时间:2013-11-12 21:58:28

标签: php arrays

我有一个这样的数组:

array(
  0 => array(
    'name' => 'group_one',
    'options' => array('foo'=>'one', 'bar'=>'two')
  ),
  1 => array(
    'name' => 'group_two',
    'options' => array('baz'=>'three', 'qux'=>'four')
  )
);

我想将所有嵌套的options数组合并为一个,所以它会是这样的:

array(
  'foo' => 'one',
  'bar' => 'two',
  'baz' => 'three',
  'qux' => 'four'
);

我有一种感觉,这很简单,但我尝试的任何东西看起来都太复杂了。任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:1)

也许某些东西更流畅,但这适用于任何长度的数组:

$result = array();

foreach($array as $v) {
    $result = array_merge($result, $v['options']);
}

输出:

Array
(
    [foo] => one
    [bar] => two
    [baz] => three
    [qux] => four
)

答案 1 :(得分:0)

$my_array = $array[0]['options'] + $array[1]['options'];

您也可以使用array_merge()

答案 2 :(得分:0)

或尝试获取像这样的新数组

   $array = array(
    0 => array(
        'name' => 'group_one',
        'options' => array('foo' => 'one', 'bar' => 'two')
    ),
    1 => array(
        'name' => 'group_two',
        'options' => array('baz' => 'three', 'qux' => 'four')
    )
);


$options = array();
foreach ($array as $arr) {
    foreach ($arr['options'] as $key => $value) {
        $options[$key] = $value;
    }
}


echo '<pre>';
print_r($options);
echo '<pre>';