【发布时间】:2016-10-01 23:50:34
【问题描述】:
我有一个集合,我想在获取其中的一些元素时对其进行迭代和修改。但是我找不到删除该提取元素的方法或方法。
$selected = [];
foreach ($collection as $key => $value) {
if ($collection->selected == true) {
$selected[] = $value;
unset($value);
}
}
这只是我的问题的演示。
在@Ohgodwhy 建议forget() 函数后,我再次检查它,发现我实际上误解了该函数。这正是我正在寻找的。
所以对于可行的解决方案,我在 if 语句中添加了 $collection->forget($key)。
以下是我的问题的有效解决方案,使用@Ohgodwhy 的解决方案:
$selected = [];
foreach ($collection as $key => $value) {
if ($collection->selected == true) {
$selected[] = $value;
$collection->forget($key);
}
}
(这只是一个演示)
【问题讨论】:
-
我建议不要将您的项目存储在数组中,而是创建一个新集合并通过推送将元素添加到其中。
-
@Amarnasan 该怎么做?我现在不需要它,但我想我将来可能需要它
-
看看这里:stackoverflow.com/a/58769554/655224。你的
if条件$collection->selected == true没有意义。为什么要检查collection对象的属性selected而不是value?如果该属性确实在collection内,请在循环之外检查一次。
标签: laravel collections