我想知道如何获得多维数组的一些关键值的总和,知道一些键是变量;这是一个例子:
数组可以这样写:
$array[$dim1][$dim2][$dim3][$dim4] = $variable_value;
$ dim1,2,3和4是具有维度的数组,我们不知道$ dim1,2,3和4的名称。
我们想要每个维度的所有$ variable_value的总和,但我们不能array_sum($array[$dim1][$dim2][$dim3][$dim4])
,因为$ dim是未知的。
我需要找到的算法必须允许我对总和应用过滤器,例如“获取所有$ variable_value的总和,其中$ dim3 = $ variableX ...”,所以这样的函数:
function array_sum_filter($array, $dimension, [$filter_on_key_value])
有什么想法吗?
答案 0 :(得分:0)
使用/ foreach循环来循环遍历多维数组,使用if语句来检查$ dim3 = $ variableX ...
答案 1 :(得分:0)
您可以使用RecursiveArrayIterator
和RecursiveIteratorIterator
$sum = 0;
$specific = 0;
$array = array();
$array["A"]["B"]["C"]["D"] = 5;
$array["A"]["B"]["K"]["D"] = 3;
$array["A"]["C"] = 2;
$array_obj = new RecursiveIteratorIterator(new RecursiveArrayIterator($array));
foreach ( $array_obj as $key => $value ) {
$sum += $value;
if ($key == "D")
$specific += $value;
}
echo $sum, PHP_EOL;
echo $specific, PHP_EOL;
输出
10
8