【发布时间】:2019-03-30 07:42:38
【问题描述】:
我一直在阅读有关 Laravel 中的集合的信息。目前我知道如何使用它,但是我对sum() 函数有疑问。
根据文档,它可以这样使用:
collect([1, 2, 3, 4, 5])->sum();
还有这样的:
$collection = collect([
['name' => 'JavaScript: The Good Parts', 'pages' => 176],
['name' => 'JavaScript: The Definitive Guide', 'pages' => 1096],
]);
$collection->sum('pages');
这很好,我理解,但是现在我有一个包含嵌套对象的数组,我想知道如何在 laravel 中实现这样的功能:
$collection = collect([
['name' => 'JavaScript: The Good Parts', 'pages' => 176, 'price' => 100.00],
['name' => 'JavaScript: The Definitive Guide', 'pages' => price, 'pages' => 150.00],
]);
$collection->sum(['pages', 'prices']);
这显然会返回这样的数组:
[1272, 250]
或在这样的集合/对象上:
{"total_pages": 1272, "total_price": 250}
简而言之,我想知道如何汇总并返回 laravel 集合中多列的结果,而不是这样做两次:
$collection->sum('pages');
$collection->sum('price');
既然我认为这会导致集合上出现多个循环,还是我错了?
【问题讨论】:
-
这是为了解决当前的问题,还是仅仅为了知识?我对人们的想法很感兴趣
-
当前问题和知识。
-
数组求和和数组访问有什么问题? IE。
$sums = $collection->sum(["pages", "prices"]); $pageSum = $sums[0]; $priceSum = $sums[1];?还是你说$collection->sum(["pages", "prices"]);不起作用? -
我不知道这是可能的。
-
您的问题听起来像是:"
$collection->sum(['pages', 'prices']);这显然会返回这样的数组...",但我明白了;不支持。跟进;手动循环/添加有什么问题?