Php 如何计算Laravel中多对多关系集合的总价

Php 如何计算Laravel中多对多关系集合的总价,php,laravel,Php,Laravel,这是我的收藏 Illuminate\Database\Eloquent\Collection {#12203 all: [ App\Product {#12171 id: 1, description: "Test 1", price: 600.0, applications_count: 314, }, App\Product {#12195 id: 2

这是我的收藏

Illuminate\Database\Eloquent\Collection {#12203
     all: [
       App\Product {#12171
         id: 1,
         description: "Test 1",
         price: 600.0,
         applications_count: 314,
       },
       App\Product {#12195
         id: 2,
         description: "Test 2",
         price: 1000.0,
         applications_count: 1129,
       },
       App\Product {#12201
         id: 3,
         description: "Test 3",
         price: 1500.0,
         applications_count: 6,
       },
尝试

$products = Product::withCount('applications')->get();

       return $this->result(
            $products->flatMap(function ($product) {
                return [
                    $product->price => $product->applications_count
                ];
            })->toArray()
        );


我需要找到集合的总数,基本上应该是price*application\u count。请给我一个想法。

迭代
$products
中的每个
$products
,并计算
价格*应用程序计数
,然后在变量中求和并返回:

$products = Product::withCount('applications')->get();

$total_price = 0; 

foreach ($products as $product){
        $total_price += $product['price'] * $product['applications_count'];
    }

return $total_price;

您可以映射集合以计算每个产品的总价(price*applications\u count),然后使用
sum()
方法获得总价之和:

$products = Product::withCount('applications')->get();

$total = $products->map(function ($product, $key) {
    return $product->price * $product->applications_count;
})->sum();
此处使用的集合:


所以,你必须计算每个产品的总价格(价格*应用程序计数),然后得到总价格的总和?@porloscerosψ是的,这就是我真正想要的。