首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过数组循环php查找X个连续数字

通过数组循环php查找X个连续数字
EN

Stack Overflow用户
提问于 2015-05-26 16:11:09
回答 1查看 2.3K关注 0票数 2

我有一些代码可以从数组中找到3个连续的数字并输出它们。

我现在想要做的是能够告诉它要找到多少个数字。我确实考虑过在外部for循环中放置一个for循环,但我认为它不能正常工作。

如何让这个迭代运行X次,直到满足X?

代码语言:javascript
复制
 if(isset($arr[$i+1]))
            if($arr[$i]+1==$arr[$i+1])
            echo 'I found it:',$arr[$i],'|',$arr[$i+1],'|',$arr[$i+2],'|',$arr[$i+3],'<br>'; 
                    exit;

到目前为止,这就是我所拥有的

代码语言:javascript
复制
for($i=0; $i < sizeof($arr); $i++) { 
    if(isset($arr[$i+1]))
    if($arr[$i]+1==$arr[$i+1])
    {

        if(isset($arr[$i+2]))
        if($arr[$i]+2==$arr[$i+2]) 
        {

            if(isset($arr[$i+3]))       
            if($arr[$i]+3==$arr[$i+3])
            { 
                echo 'I found it:',$arr[$i],'|',$arr[$i+1],'|',$arr[$i+2],'|',$arr[$i+3],'<br>'; 
                exit;
            }//if3

        }//if 2

    }//if 1
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-26 16:34:05

您可以循环遍历数组,将当前值与前一个值进行比较,以查看这些值是否是连续的,同时跟踪当前的连续计数,而不是反复地向前看。应将连续数字追加到数组中,而非连续数字应重新初始化数组。当您达到所需的连续数计数时,可以返回结果。

代码语言:javascript
复制
function find_consecutive($array, $count) {
    $consecutive = array();
    $previous = null;
    foreach ($array as $value) {
        if ($previous !== null && $value == $previous + 1) {
            $consecutive[] = $value;
            if ($found == $count) {
                return "I found it: " . implode("|", $consecutive) . "<br>";
            }
        } else {
            $consecutive = array($value);
            $found = 1;
        }
        $previous = $value;
        $found++;
    }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30463744

复制
相关文章

相似问题

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