使用 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,這將是一個合適的解決方案。