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')等)代码>否,我发布的代码正好提供了您在问题中发布的内容。你说得对。我的错误。我的数据在问题中不正确,但你的回答是正确的。