如果结果是连续的,请检查

时间:2017-10-23 09:10:19

标签: php mysql

我用MySQL和PHP解决了一些问题。

假设我有一个包含这些行的表:

  • id(int
  • value(boolean
  • 日期(datetime

现在我想检查,如果有5个或更多条目连续具有值false

示例:

id | value | date
1 - true - 01.01.1970
2 - false - 02.01.1970
3 - false - 03.01.1970
4 - false - 04.01.1970
5 - false - 05.01.1970
6 - false - 06.01.1970

这里我们有5个连续false的条目。所以我的脚本应该返回true(是的,有5个或更多的条目,不断是false)。

此示例应返回false

id | value | date
1 - false - 01.01.1970
2 - false - 02.01.1970
3 - true - 03.01.1970
4 - false - 04.01.1970
5 - true - 05.01.1970
6 - false - 06.01.1970

这应该返回false(不,连续没有5个或更多条目false)。

知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

是的,可以使用循环,例如:

$array = [[1, true], [1, false], [1, false],[1, false],[1, false],[1, false]]; // Your array

$counter = 0;
$hasFoundFiveContinuesFalse = false;
foreach($array as $item) {
    if($item[1] == false) {
        $counter++;
    } else {
        $counter = 0;
    }

    if($counter >= 5 ) {
        $hasFoundFiveContinuesFalse = true; // if we have found 5 times false then break the loop and set hasFoundFiveContinuesFalse to true 
        break;
    }
}

var_dump($hasFoundFiveContinuesFalse);

这可能不是一个完美的方式,但它应该有用。