首页 > 解决方案 > PHP array_column() 可能为空列

问题描述

有没有人知道在不使用 for/foreach 的情况下从中获得“5”结果的方法?

$array = [
    ['number1' => 1], 
    ['number1' => 1],
    ['number1' => 1], 
    ['number2' => 2], 
]

echo array_sum( array_column( $array, 'number1' ?? 'number2' ) );

我理解为什么我的示例不起作用(字符串'number1'永远不会为空)。

如果没有,for 或 foreach 的性能会比使用 array_column 低多少?

标签: php

解决方案


如果您想始终从内部数组中获取第一项而不考虑其键,则可以映射reset到模仿array_column

echo array_sum(array_map('reset', $array));

array_sum,正如其他人所建议的那样,它也可以工作,但是如果任何内部数组有更多的值不会给你想要的结果。


推荐阅读