【发布时间】:2019-11-22 08:29:58
【问题描述】:
我通过 ->get() 从数据库中提取数据;并希望根据 foreach 循环中的条件删除某个元素,所以我需要类似
foreach($datas as $data) {
$data->forget(this);
}
或者我计算索引或其他什么,但我需要找到一种方法来删除它,因为 ->forget() 只适用于集合实例(而不是看起来像雄辩的集合),你知道吗?
这是我的日志格式:
[{"id":14,...},{"id":15,...}...]
所以我得到一个数组中的对象。
这里是 dd();
Collection {#274 ▼
#items: array:4 [▼
0 => Data {#275 ▶}
1 => Data {#276 ▶}
2 => Data {#277 ▶}
3 => Data {#278 ▶}
]
}
编辑:我知道首先只选择需要的元素会更好,但这是不可能的,或者是不希望的,因为我正在通过长期的碳相关检查并希望根据不同的情况做一些事情。
编辑 2: 我可以用忘记(1..2 和 3)删除,但不能用 0,它告诉我未定义的偏移量?
【问题讨论】:
-
你试过
unset($array[$index]) -
同样的错误,未定义的偏移量 0
-
当您通过
get获取数据时,为什么不在获取元素之前使用 where 子句删除特定元素? -
get()->toArray()不能满足您的要求吗? -
只需执行
get()->toArray()然后通过unset()删除
标签: laravel collections