我有一个数组中的数组值,如下所示。
Array
(
[0] => Array
(
[0] => Array
(
[Floor] => Floor-1
)
[1] => Array
(
[Flat] => Flat A2
)
[2] => Array
(
[Area] => Balcony,
)
)
)
我需要使它成为如下的单个关联数组。
Array
(
[0] => Array
(
[Floor] => Floor-1
[Flat] => Flat A2
[Area] => Balcony,
)
)
我该怎么做?
这个例子应该会对您有所帮助。
<?php
$arr = array(
array(
'floor'=>'Floor-1'
),
array(
'Flat'=>'Flat A2'
),
array(
'Area'=>'Balcony,'
),
);
$final_array = array();
foreach ($arr as $arr1) {
foreach ($arr1 as $key => $value) {
$final_array[$key] = $value;
}
}
?>
输出将为
Array
(
[floor] => Floor-1
[Flat] => Flat A2
[Area] => Balcony,
)
在这里,我们创建了一个名为$final_array
的空数组,我们将使用foreach
循环来附加这个数组。
请记住,如果您有相同的数组键,那么最后一个值将覆盖如下。
<?php
$arr = array(
array(
'floor'=>'Floor-1',
'floor'=>'Floor-2',
),
array(
'Flat'=>'Flat A2'
),
array(
'Area'=>'Balcony,'
),
array(
'Area'=>'Balcony2,'
),
);
$final_array = array();
foreach ($arr as $arr1) {
foreach ($arr1 as $key => $value) {
$final_array[$key] = $value;
}
}
?>
现在,输出将是
Array
(
[floor] => Floor-2
[Flat] => Flat A2
[Area] => Balcony2,
)
<?php
$array = [
[
[
'foo' => 'big'
],
[
'bar' => 'fat'
],
[
'baz' => 'mamma'
]
]
];
$merged[0] = array_reduce($array[0], function($carry, $item) {
return array_merge((array) $carry, $item);
});
var_export($merged);
输出:
array (
0 =>
array (
'foo' => 'big',
'bar' => 'fat',
'baz' => 'mamma',
),
)
这个单行代码就足以完成这个
$newArr = call_user_func_array('array_merge',$dataArr); ///where $dataArr is your array..
call_user_func_array将调用一个带有参数数组的回调函数,array_merge将所有这些参数合并到一个数组中阅读更多关于call_user_filc_array((和array_marge((的信息
示例代码:
<?php
$dataArr = array(
array(
'Floor'=>'Floor-1'
),
array(
'Flat'=>'Flat A2'
),
array(
'Area'=>'Balcony,'
),
);
$newArr = call_user_func_array('array_merge',$dataArr);
echo "<pre>"; print_r($newArr);
?>
这将给你:
Array
(
[Floor] => Floor-1
[Flat] => Flat A2
[Area] => Balcony,
)