gpt4 book ai didi

php - Laravel Collection 循环更新元素

转载 作者:行者123 更新时间:2023-12-04 14:20:42 26 4
gpt4 key购买 nike

我声明了一个 collect() 数据类型的变量。我想遍历它,并更新每一行的特定列。

示例代码:

    $a = collect([
['one' => 1, 'two' => 2],
['one' => 3, 'two' => 4],
['one' => 5, 'two' => 6]
]);

foreach ($a as $b) {
$b['one'] = 0;
}

dd($a);

我不明白,为什么结果是这样的:


Collection {#510 ▼
#items: array:3 [▼
0 => array:2 [▼
"one" => 1
"two" => 2
]
1 => array:2 [▼
"one" => 3
"two" => 4
]
2 => array:2 [▼
"one" => 5
"two" => 6
]
]
}

我希望每一行的结果为“一”=> 0。

最佳答案

您没有修改原始数组,没有地方可以将修改后的项目存储回数组。为此,最好对集合本身使用 map 函数。

$a = collect([['one' => 1, 'two' => 2], ['one' => 3, 'two' => 4], ['one' => 5, 'two' => 6]]);

$a = $a->map(function($item) {
$item['one'] = 0;
return $item;
});

每种方式:

foreach ($a as $key => $b) {
$b['one'] = 0;
$a[$key] = $b; // override the original item.
}

关于php - Laravel Collection 循环更新元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55352923/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com