PHP:将多维数组转换为单维数组

Key*_*oke 8 php arrays

基本上我的应用程序正在与一个Web服务交互,该服务发回一个奇怪的多维数组,例如:

Array
(
    [0] => Array
        (
            [Price] => 1
        )
    [1] => Array
        (
            [Size] => 7
        )
    [2] => Array
        (
            [Type] => 2
        )
)
Run Code Online (Sandbox Code Playgroud)

这不是问题,但问题是服务不断更改这些项的索引,因此在下一个数组中,Price可以是1而不是0.

如何有效地将这样的数组转换为单维数组,以便通过$ var ['Size']而不是$ var [1] ['Size']来访问变量?

感谢您的帮助

use*_*291 30

$result = call_user_func_array('array_merge', $array);
Run Code Online (Sandbox Code Playgroud)

  • 请注意,这要求第二级数组键名称不相同.否则,它们将被合并,仅返回单个结果. (4认同)

Tat*_*nen 9

像这样:

$result = array();

foreach($array as $inner) {
    $result[key($inner)] = current($inner);        
}
Run Code Online (Sandbox Code Playgroud)

$result数组现在看起来像这样:

Array
(
    [Price] => 1
    [Size] => 7
    [Type] => 2
)
Run Code Online (Sandbox Code Playgroud)


kei*_*ics 7

我正在使用laravel的助手:http://laravel.com/api/source-function-array_flatten.html#179-192

function array_flatten($array)
    {
        $return = array();

        array_walk_recursive($array, function($x) use (&$return) { $return[] = $x; });

        return $return;
    }
Run Code Online (Sandbox Code Playgroud)