将包含具有单个元素的数组的数组转换为单个深度数组


Transform array containing arrays with a single element into single depth array

我想知道是否有更好的解决方案: 将包含具有单个值的数组的数组转换为深度少一个的数组。 即

数组的打印方式如下:

Array
(
[0] => Array
    (
        [item_1] => 5
    )
[1] => Array
    (
        [item_2] => 7
    )
[2] => Array
    (
        [item_4] => 1
    )
[3] => Array
    (
        [item_5] => 1
    )
)

并且应该转换为打印,如下所示:

Array
(
[item_1] => 5
[item_2] => 7
[item_4] => 1
[item_5] => 1
)

现在我用这段代码实现了这一点:

$items = array(...) // retrieved from db
$counts = array();
foreach ($items as $item) {
    foreach ($item as $key => $val) {
        $counts[$key] = $val;
    }
}

有没有更好的方法将包含数组的数组项合并到一个数组中?

未经测试,但应该可以工作:

$items = array(...);
$counts = array_reduce($items,"array_merge",array());