如何在Laravel中统计数组内的所有数据项?
在Laravel中统计数组内所有数据项的方法
如果是类似参考图中的结构化数组(每个子项包含count字段),想要得到总和8,可以用以下几种方式实现:
方法1:使用Laravel集合(推荐)
Laravel的集合提供了便捷的sum方法,直接指定字段名即可求和:
$array = [ ['count' => 3], ['count' => 2], ['count' => 3], ]; $total = collect($array)->sum('count'); // 输出结果:8
如果是从Eloquent模型查询得到的集合,直接调用sum方法即可:
$total = YourModel::query()->sum('count');
方法2:原生PHP函数组合
不用集合的话,也可以用array_sum结合array_map处理:
$total = array_sum(array_map(fn($item) => $item['count'], $array)); // 输出结果:8
方法3:递归统计多维数组(通用场景)
如果数组是更深层次的多维结构,需要统计所有叶子节点的数量,可以用递归函数:
function calculateTotal($array) { $total = 0; foreach ($array as $value) { $total += is_array($value) ? calculateTotal($value) : 1; } return $total; } $total = calculateTotal($yourMultiArray);
内容的提问来源于stack exchange,提问作者MaditionSky
相关产品推荐
相关产品推荐

