【发布时间】:2018-10-18 09:49:26
【问题描述】:
我创建了一个新的collection,当我尝试在foreach 循环中使用键添加新值时,它不起作用。它只附加第一个值。我希望它全部添加。
这是我的代码:
$new = new Collection();
foreach($messages as $message){
$new['message'] = $message->message;
}
但最终不是返回所有消息,而是只返回第一条消息:
{"message":"first"}
相反,它应该返回
{"message": "first", "message": "second"}
有什么问题?
此外,当我在不提供集合键的情况下执行此操作时,它会全部返回:
foreach($messages as $message){
$new = $message->message;
}
【问题讨论】:
-
$collection = collect($messages)现在你已经收集了消息。无论如何,您对数组缺乏了解,$a['message'] = 'first'; $a['message'] = 'second'这里会发生什么,如果您打印$a,您会看到message = 'second',为什么?因为每个数组的键是唯一的,所以集合也是如此。
标签: arrays laravel collections foreach