php - PHP - 如何获得多维数组的总和?
问题描述
我试图得到这个数组的总和:
Array
(
[1] => 0
[2] => 1
[3] => Array
(
[0] => 1
[1] => 1
[2] => 1
)
[4] => 1
[5] => 0
)
在这种情况下,总和应该是 5。我似乎无法让它工作。有人能帮我吗?
编辑:
我尝试过使用 array_sum (这显然不起作用)和这样的递归数组:
$array_obj = new RecursiveIteratorIterator(new RecursiveArrayIterator($array));
$sum = 0;
foreach($array_obj as $key => $value) {
if($key == '3')
$sum += $value;
}
不知何故,这会返回 20;
解决方案
您可以array_walk_recursive()
通过引用与使用外部变量结合使用:
$sum = 0;
array_walk_recursive($array, function($number) use (&$sum) {
$sum += $number;
});
echo $sum;
如果数组的元素是数组本身,array_walk_recursive()
将遍历它。否则它将调用元素上的函数。
推荐阅读
- python - python(多处理)
- reactjs - Firebase 键返回“未定义”(ReactJS)
- node.js - Discord.js ReferenceError:嵌入未定义
- entity-framework - DDD和需要ACID的业务规则
- python - 找不到 anaconda 命令提示符中指定的路径
- pyqt5 - PyQt5 上的广告
- algorithm - 给定对象在样本中的概率,无需替换即可采样
- python - Heroku Py 部署错误“应用程序与 buildpack 不兼容”
- java - Pyspark:尝试连接到 Java 服务器时出错
- amazon-web-services - 如何找到信任跨多个 AWS 账户的 EIP 列表的所有安全组?