Sum values of multidimensional array by key without loop(无循环按键对多维数组的值求和)
问题描述
I have this:
What I need is: 7
", which is the the sum of the f_count
column.
I've been trying to figure this out for a couple hours. I thought array_sum()
would work, but not with a multidimensional array. So, I've tried figuring out how to isolate the f_count
s by unset()
or splicing or anything else, but every solution seems to involve a foreach
loop. I've messed with array_map
, array_walk
, and others to no avail. I haven't found a function that works well with multidimensional arrays.
I'm running PHP 5.4.
Can someone please show me how to sum that column without a foreach
loop?
If it helps, the f_count
values will never be higher than 100
, and the uid
values will always be greater than 100
.
Alternatively, if there's a way to run my query differently such that the array is not multidimensional, that would obviously work as well.
I'm using PDO.
You need to couple it with array_map()
to select the f_count
column first:
Of course, internally, this performs a double loop; it's just that you don't see it inside the code. You could use array_reduce()
to get rid of one loop:
However, if speed is the only interest, foreach
remains the fastest:
This is thanks to the "locality" of the variables that you're using, i.e. there are no function calls used to calculate the final sum.
这篇关于无循环按键对多维数组的值求和的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!