php計算時間段的最大連續天數

如需求:最高連續打卡多少天? 或者一串數字,最大連續數字有多少個。ide

$nums = ['2018-10-09','2018-10-10','2018-10-11','2018-10-13','2018-10-15','2018-10-16','2018-10-17','2018-10-18'];
    $max  = 0;
    $hash = [];
    foreach ($nums as $val) {
        $hash[$val] = 1;
    }
    foreach ($nums as $val){
        $num = 1;
        if (!$hash[$val - 1]) {
            while($hash[++$val]) $num++;
        }
        $max = $num > $max ? $num : $max;
    } 

    echo $max;
$nums = [0, 3, 7, 2, 5, 8, 4, 6, 0, 1];
    $max  = 0;
    $hash = [];
    foreach ($nums as $val) {
        $hash[$val] = 1;
    }
    foreach ($nums as $val){
        $num = 1;
        if (!$hash[$val - 1]) {
            while($hash[++$val]) $num++;
        }
        $max = $num > $max ? $num : $max;
    } 

    echo $max;
相關文章
相關標籤/搜索