有人知道不使用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的性能低多少?
答案 0 :(得分:3)
如果要始终从内部数组中获取第一项而不管其键如何,则可以映射reset
来模仿array_column
。
echo array_sum(array_map('reset', $array));
正如其他人所建议的那样, array_sum
也可以使用,但是如果任何内部数组具有更多的值,这些值将无法为您提供所需的结果。
答案 1 :(得分:2)
出于完整性考虑,这是获得所需结果的最有效方法。
$total = 0;
foreach( $array as $sub_array )
{
foreach( $sub_array as $value )
{
$total+= $value;
}
}