数组中的数组作为单个关联数组


Array within array as single associative array

我有一个数组中的数组值,如下所示。

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,
)