0

我有一个这样的数组:

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'
);

我觉得这很简单,但是我尝试的任何事情似乎都太复杂了。任何帮助,将不胜感激。

4

3 回答 3

1

也许一些更光滑的东西,但这应该适用于任何长度的数组:

$result = array();

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

输出:

Array
(
    [foo] => one
    [bar] => two
    [baz] => three
    [qux] => four
)
于 2013-11-12T22:01:59.527 回答
0
$my_array = $array[0]['options'] + $array[1]['options'];

你也可以使用array_merge()

于 2013-11-12T22:01:52.820 回答
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>';
于 2013-11-12T22:24:54.103 回答