使用 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,这将是一个合适的解决方案。