如何删除多维Laravel集合中的列?

时间:2018-02-08 16:55:08

标签: laravel collections eloquent

我只想删除多维集合中的列。

$z = collect(
    ["x"=>"a", "y"=>"b", "z"=>"c"],
    ["x"=>"c", "y"=>"d", "z"=>"e"]
);

$z->deleteColumn("x");

$ z现在应该有数据集:

[
   ["y"=>b", "z"=> "c"]
   ["y"=>d", "z"=> "e"]
]

我可以使用一个地图功能,但是有一个简单的一个班轮我不见了? 这似乎很常见。

6 个答案:

答案 0 :(得分:3)

使用transform()方法:

$collection->transform(function($i) {
    unset($i->x);
    return $i;
});

答案 1 :(得分:2)

最好设置所需的内容,而不要删除不需要的内容。您将拥有易于扩展和修改的代码。

transform()方法与graph = { frozenset({'a', 'b'}): 3, frozenset({'b', 'c'}): 2, frozenset({'a', 'c'}): 4 } 一起使用:

only()

答案 2 :(得分:1)

我来晚了,但这也可以通过以下操作来完成:

callback

答案 3 :(得分:0)

您可以使用Laravel pluck方法,如下所示:

"DefaultConnection": {
     "ConnectionString": "" <-- Not included for safety reasons
 }

答案 4 :(得分:0)

我最终在Collection类中编写了一个宏。

null

答案 5 :(得分:0)

$syncData = $z->map(function($attr){
     return Arr::only($attr, ['y', 'z']);
});

Laravel 8.*