使用 Map 来操作集合中的每个元素
通常,你需要更改一组数据的构造方式并操作某些值。
在下面的例子中,我们得到了一系列带有附加折扣金额的书籍。但我们宁愿拥有一张价格已经打折的书籍清单。
$books = [
['title' => 'The Pragmatic Programmer', 'price' => 20, 'discount' => 0.5],
['title' => 'Continuous Delivery', 'price' => 25, 'discount' => 0.1],
['title' => 'The Clean Coder', 'price' => 10, 'discount' => 0.75],
];
$discountedItems = collect($books)->map(function ($book) {
return ['title' => $book["title"], 'price' => $book["price"] * $book["discount"]];
});
//[
// ['title' => 'The Pragmatic Programmer', 'price' => 10],
// ['title' => 'Continuous Delivery', 'price' => 12.5],
// ['title' => 'The Clean Coder', 'price' => 5],
//]
这也可用于更改密钥,假设我们想将密钥 title
更改为 name
,这将是一个合适的解决方案。