有没有一种方法可以像在普通的array_map()循环中那样对内置方法array_map()的迭代进行break或continue?
例如:
array_map(function (String s) {
if (condition is met){
continue;
}
return stuff;
}, $array_to_map);发布于 2019-07-01 05:20:20
不是的。array_map返回一个与原始数组长度相同的数组,因此您不能跳过任何项。也就是说,每次迭代都需要返回一些东西。
您可以使用array_filter删除某些项目。
发布于 2020-03-31 21:56:25
$results = array_map(function (String s) {
if (condition is met){
//do stuff
} else {
return false;
}
return stuff;
}, $array_to_map);然后,$results将包含一个数组,其中的原始元素数作为$array_to_map,只有在条件失败时,数组元素才会设置为false
那就去做吧。
$array_with_elements_remove = array_filter($results, function($e){
return $e; //when this value is false the element is removed.
});发布于 2019-01-11 07:26:48
您可以通过简单地返回原始值来模拟continue。
array_map(function($var){
if(condition)
return $var; //continue
return $transformedValue;
}, $arr);然而,实际上没有办法实现异常(除了使用StopIteration break类这样令人厌恶的事情)。
https://stackoverflow.com/questions/54138330
复制相似问题