首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >跳过if语句为True的array_map函数迭代

跳过if语句为True的array_map函数迭代
EN

Stack Overflow用户
提问于 2019-01-11 07:18:49
回答 4查看 8.2K关注 0票数 1

有没有一种方法可以像在普通的array_map()循环中那样对内置方法array_map()的迭代进行breakcontinue

例如:

代码语言:javascript
运行
复制
array_map(function (String s) {
    if (condition is met){
        continue;
    }
    return stuff;
}, $array_to_map);
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-07-01 05:20:20

不是的。array_map返回一个与原始数组长度相同的数组,因此您不能跳过任何项。也就是说,每次迭代都需要返回一些东西。

您可以使用array_filter删除某些项目。

票数 6
EN

Stack Overflow用户

发布于 2020-03-31 21:56:25

代码语言:javascript
运行
复制
$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

那就去做吧。

代码语言:javascript
运行
复制
$array_with_elements_remove = array_filter($results, function($e){
    return $e; //when this value is false the element is removed.
});
票数 1
EN

Stack Overflow用户

发布于 2019-01-11 07:26:48

您可以通过简单地返回原始值来模拟continue

代码语言:javascript
运行
复制
array_map(function($var){
  if(condition)
    return $var; //continue
  return $transformedValue;
}, $arr);

然而,实际上没有办法实现异常(除了使用StopIteration break类这样令人厌恶的事情)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54138330

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档