在 for 循环中形成两个数组,检查点火状态变化条件

form two arrays in a for loop checking for ignition state change condition

我需要一个逻辑来检查点火状态的变化,如果点火开启,则将该索引推入起始数组,如果状态变为关闭,则推入停止数组,这样我就可以考虑将一个起始数组索引用于停止数组索引为一次旅行。我有一个逻辑,但这会推动所有起始值和所有停止值我只需要状态更改索引

$isIgniOn = false;  $startArray = array(); $stopArray = array();

    for ($i = 0; $i < count($reportData); $i++) {

        if ($reportData[$i]['ignition_status'] == 1) {
            $startArray[] = $i;
            $isIgniOn = true;

        } else {
            if ($isIgniOn) {
                $isIgniOn = false;
                $stopArray[] = $i;
            } else {
                $startArray[] = $i;
            }

        }

    }

问题是,您实际上并没有检查状态是否已更改,而是需要在您的程序中添加一些额外的逻辑:

$isIgniOn = false;  $startArray = array(); $stopArray = array();

for ($i = 0; $i < count($reportData); $i++) {

    if ($reportData[$i]['ignition_status'] == 1 && !$isIgniOn) {
        $startArray[] = $i;
        $isIgniOn = true;

    } elseif ($reportData[$i]['ignition_status'] == 0 && $isIgniOn) {
       {
            $isIgniOn = false;
            $stopArray[] = $i;
        }

    }

}