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ψ是的,这就是我真正想要的。