Collection {#363 ▼
#items: array:3 [▼
0 => Tag {#376 ▶}
1 => null
2 => Tag {#374 ▶}
]
}
我想从此集合中删除第二个键/对元素,我该如何实现...谢谢
答案 0 :(得分:5)
您可以使用$collection->filter();
删除空值。
$filtered = $collection->filter(function ($value, $key) {
return $value != null;
});
请参阅documentation。
答案 1 :(得分:2)
此外,Collection@filter
将删除null
,而无需使用任何闭包进行检查。与array_filter
删除null
的方式类似。
$filtered = $collection->filter();
// nulls will be removed
使用Collection@filter
答案 2 :(得分:1)
当你处理一个字符串数组时,你可以简单地使用array_filter(),它可以方便地为你处理所有这些:
print_r(array_filter($linksArray));
请记住,如果没有提供回调,则将删除数组的所有条目等于FALSE(请参阅转换为布尔值)。因此,如果您需要保留精确字符串为“0”的元素,则需要自定义回调:
// 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 !== ''; }));
答案 3 :(得分:0)
如果从集合中严格删除仅NULL值而不删除零(0)。 例如:[10,10,0,9,null]
$filtered = $collection->filter(function($value, $key) {
return !is_null($value);
});
输出:[10,10,0,10]
正如其他人所说,您可以使用不带回调的filter()方法来删除等于FALSE([],0,NULL,FALSE,'')的值