Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 合并嵌套数组_Php_Arrays - Fatal编程技术网

Php 合并嵌套数组

Php 合并嵌套数组,php,arrays,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') ) ); arr

我有这样一个数组:

array(
  0 => array(
    'name' => 'group_one',
    'options' => array('foo'=>'one', 'bar'=>'two')
  ),
  1 => array(
    'name' => 'group_two',
    'options' => array('baz'=>'three', 'qux'=>'four')
  )
);
array(
  'foo' => 'one',
  'bar' => 'two',
  'baz' => 'three',
  'qux' => 'four'
);
我想将所有嵌套的
选项
数组合并为一个,因此如下所示:

array(
  0 => array(
    'name' => 'group_one',
    'options' => array('foo'=>'one', 'bar'=>'two')
  ),
  1 => array(
    'name' => 'group_two',
    'options' => array('baz'=>'three', 'qux'=>'four')
  )
);
array(
  'foo' => 'one',
  'bar' => 'two',
  'baz' => 'three',
  'qux' => 'four'
);
我觉得这很简单,但我尝试的任何东西都太复杂了。任何帮助都将不胜感激

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

您也可以使用
array\u merge()

可能更流畅,但这适用于任意长度的数组:

$result = array();

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

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

或者尝试获得这样的新数组

   $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>';
$array=array(
0=>数组(
'name'=>'group_one',
'options'=>array('foo'=>'one','bar'=>'two')
),
1=>数组(
“名称”=>“第二组”,
'options'=>array('baz'=>'three','qux'=>'four'))
)
);
$options=array();
foreach($arr形式的数组){
foreach($arr['options']作为$key=>$value){
$options[$key]=$value;
}
}
回声';
打印(可选);
回声';

可能的重复给了我一个选项数组。不仅仅是其中的键/值<代码>数组(数组('foo'=>'one')、数组('bar'=>'two')等)否,我发布的代码正好提供了您在问题中发布的内容。你说得对。我的错误。我的数据在问题中不正确,但你的回答是正确的。