我有一个集合,每个项目都有一个featured为true或false 的属性,因此我想获取两个变量$featured和$unfeatured。
我可以做这个:
$featured = $collection.filter(function($item){
return $item->featured;
});
$unfeatured = $collection.filter(function($item){
return !$item->featured;
});
Run Code Online (Sandbox Code Playgroud)
但是也许有更短的方法?
小智 10
我知道这是一个很老的帖子。我想我会为那些来自搜索的人添加这个。
从5.3开始,您可以使用如下分区方法:
list($featured, $unfeatured) = $collection->partition(function($item) {
return $item->featured;
});
Run Code Online (Sandbox Code Playgroud)
https://laravel.com/docs/5.3/collections#method-partition
你可以使用该each()方法
$featured = [];
$unfeatured = [];
$collection->each(function ($item) use (&$featured, &$unfeatured) {
if ($item->featured) {
$featured[] = $item;
} else {
$unfeatured[] = $item;
}
}
Run Code Online (Sandbox Code Playgroud)