我有一些代码可以从数组中找到3个连续的数字并输出它们。
我现在想要做的是能够告诉它要找到多少个数字。我确实考虑过在外部for循环中放置一个for循环,但我认为它不能正常工作。
如何让这个迭代运行X次,直到满足X?
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;到目前为止,这就是我所拥有的
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
}发布于 2015-05-26 16:34:05
您可以循环遍历数组,将当前值与前一个值进行比较,以查看这些值是否是连续的,同时跟踪当前的连续计数,而不是反复地向前看。应将连续数字追加到数组中,而非连续数字应重新初始化数组。当您达到所需的连续数计数时,可以返回结果。
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++;
}
}https://stackoverflow.com/questions/30463744
复制相似问题