Collection {#363 ▼
#items: array:3 [▼
0 => Tag {#376 ▶}
1 => null
2 => Tag {#374 ▶}
]
}
我想从这个集合中删除第二个键/值元素。我该如何做到这一点?
此外,Collection@filter
将删除null
,而无需使用任何闭包来进行检查。类似于array_filter
将删除null
。
$filtered = $collection->filter();
// nulls will be removed
为了补充之前使用 Collection@filter
的回答
null
条目,它会删除与 false
松散等效的条目,例如:[]
、0
、false
、''
、null
都将被删除。 - FullStackFool$collection->filter();
来移除 null 值。$filtered = $collection->filter(function ($value, $key) {
return $value != null;
});
$filtered = $collection->filter()
同样有效。 - Raza Mehdi由于你正在处理字符串数组,因此可以简单地使用array_filter(),它方便地为你处理所有这些内容:
print_r(array_filter($linksArray));
// PHP < 5.3
print_r(array_filter($linksArray, create_function('$value', 'return $value !== "";')));
// PHP 5.3 and later
print_r(array_filter($linksArray, function($value) { return $value !== ''; }));
$filtered = $collection->filter(function($value, $key) {
return !is_null($value);
});
输出: [10,10,0,10]
正如其他人所说,您可以使用只带有回调的filter()方法来删除等效于FALSE的值([],0,NULL,FALSE,'')
官方文档: https://laravel.com/docs/8.x/collections#method-filter