Laravel从get集合中删除索引元素

时间:2019-11-22 08:29:58

标签: laravel collections

我通过-> 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 ▶}
  ]
}

编辑:我知道最好只选择所需的元素,但这是不可能的,或者是不希望的,因为我正在对结果进行长期的碳相关检查,并希望根据不同的情况做一些事情。 / p>

编辑2: 我可以删除(1..2和3),但是不能删除0,它告诉我未定义的偏移量?

1 个答案:

答案 0 :(得分:1)

如果您要删除项目中的特定属性,也许正在寻找map

$datas = $datas->map(function ($data) {
    // modify $data here, unset unset($data->property);
    return $data;
});

See documentation here

filter删除整个项目:

$datas = $datas->filter(function ($data) {
     return ($data->property == 'bar') ? true : false;
});

See documentation here