I have an array like this:
Array
(
[1000] => Array
(
[pv] => 36
)
[1101] => Array
(
[1102] => Array
(
[pv] => 92
)
[pv] => 38
)
[pv] => 64
)
How I can find the sum of all array elements with key 'pv', regardless of the depth at which they appear.
For this example the result will 36+92+38+64 = 240
Thanks for help.
use like
This would give you more leeway in checking alternative keys a swell.
based on @Ali Sattari answer
Another alternative:
Update: Just thought I'd mention that this method uses the PHP SPL Iterators.
Salathe Edit:
A simple (relatively) way to filter the keys and to sum the values (without writing a custom Iterator) would be to do some filtering with a
RegexIterator
, convert the resulting iterator into an array and use the handyarray_sum
function on it. This is purely an academic exercise and I certainly wouldn't advocate it as the best way to achieve this... however, it is just one line-of-code. :)you can use
array_reduce
orarray_walk_recursive
functions and a custom call back function of yourself: