Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php检查数组值是否连续_Php_Arrays - Fatal编程技术网

php检查数组值是否连续

php检查数组值是否连续,php,arrays,Php,Arrays,我有一个数组$dice(4,7,3,6,7) 我需要一种方法来检查数组中的每个值是否是连续的数字 有没有一种简单的方法可以做到这一点?试试这个: function HasConsec($array) { $res = false; $cb = false; foreach ($array as $im) { if ($cb !== false && $cb == $im) $res = true;

我有一个数组
$dice(4,7,3,6,7)

我需要一种方法来检查数组中的每个值是否是连续的数字

有没有一种简单的方法可以做到这一点?

试试这个:

function HasConsec($array)
{
    $res = false;
    $cb = false;
    foreach ($array as $im)
    {
        if ($cb !== false && $cb == $im)
            $res = true;
        $cb = $im + 1;
    }

    return $res;
}
$dice = array(4,5,2,6,7);
function checkConsec($d) {
    for($i=0;$i<count($d);$i++) {
        if(isset($d[$i+1]) && $d[$i]+1 != $d[$i+1]) {
            return false;
        }
    }
    return true;
}
var_dump(checkConsec($dice)); //returns false
var_dump(checkConsec(array(4,5,6,7))); //returns true
$dice=数组(4,5,2,6,7);
函数checkconce($d){
对于($i=0;$i请尝试以下方法:

$dice = array(4,5,2,6,7);
function checkConsec($d) {
    for($i=0;$i<count($d);$i++) {
        if(isset($d[$i+1]) && $d[$i]+1 != $d[$i+1]) {
            return false;
        }
    }
    return true;
}
var_dump(checkConsec($dice)); //returns false
var_dump(checkConsec(array(4,5,6,7))); //returns true
$dice=数组(4,5,2,6,7);
函数checkconce($d){

对于($i=0;$i我想这就是你要找的

for ($c = 0; $c < count($dice); $c++){
    $next_arr_pos = $c+1;

    if ($c == (count($dice) -1)){
        $cons_check = $dice[$c];
    }
    else
    {
        $cons_check = $dice[$next_arr_pos];
        $gap_calc = $cons_check-$dice[$c];
    }

    if ($dice[$c] < $cons_check && $gap_calc == 1){

        echo 'arr_pos = '.$dice[$c].' Is consecutive with '.$cons_check.' <br />';
    }
}
for($c=0;$c;
}
}

我想这就是你要找的

for ($c = 0; $c < count($dice); $c++){
    $next_arr_pos = $c+1;

    if ($c == (count($dice) -1)){
        $cons_check = $dice[$c];
    }
    else
    {
        $cons_check = $dice[$next_arr_pos];
        $gap_calc = $cons_check-$dice[$c];
    }

    if ($dice[$c] < $cons_check && $gap_calc == 1){

        echo 'arr_pos = '.$dice[$c].' Is consecutive with '.$cons_check.' <br />';
    }
}
for($c=0;$c;
}
}

然而,我不是一名PHP开发人员,我知道这个问题看起来很老,但有一个简单的算法,我想与您分享,它可以告诉您数组是否连续

以下是步骤:

  • 查找输入数组的最大数和最小数

  • 应用公式:
    (max-min+1)=array.length

  • 如果是真的,那么它就是假的


然而,我不是PHP开发人员,我知道这个问题看起来很老,但有一个简单的算法,我想与您分享,它可以告诉您数组是否连续

以下是步骤:

  • 查找输入数组的最大数和最小数

  • 应用公式:
    (max-min+1)=array.length

  • 如果是真的,那么它就是假的


你说的“连续”是什么意思?如果你是指按顺序复制数组,对副本进行排序并与
=
@fge进行比较,那么“连续”是什么意思?如果你是指按顺序复制数组,对副本进行排序并与
=
@fge进行比较,我将如何使用它
?if(hasconce($dice))…函数返回布尔值我该如何使用它?
if(hasconce($dice)='1')
?if(hasconce($dice))…函数返回布尔值我只是想避免在输入数组中循环我只是想避免在输入数组中循环