问题描述
在 continue
中循环时 transform()
的等价物是什么?
我想做这样的事情:
$collection->transform(function($item) {
if ($condition) {
continue;
}
return $item['key'];
});
一种选择是在 ->reject()
完成后执行 transform
,但有没有办法在循环时执行此操作?
[
'1','2',]
=> when $condition:
[
'1',]
$collection->transform(function($item) {
if ($condition) {
return ['']; // <- This didn't work!
}
return $item['key'];
});
解决方法
您可以使用 collection->reduce()
方法实现此目的:
$collection->reduce(function($result,$item) {
if (!some_condition_etc...) {
$result->push($item['key']);
}
return $result;
},collect());