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

时间:2017-08-10 05:45:55

标签: php arrays for-loop flags

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

var n1 = function () {
    var inputValue= $("input[id='divnumofprop']").val();
    alert(inputValue);
};

2 个答案:

答案 0 :(得分:0)

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

$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;
        }

    }

}

答案 1 :(得分:0)

你不远,但你需要检查何时做出改变。我稍微简化了一下,将$isIgniOn改为与$reportData值相同(如0和1而不是true和false)

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

for ($i = 0; $i < count($reportData); $i++) {
    $newState = $reportData[ $i ]['ignition_status'];
    if ( $newState != $isIgniOn ){
        if ( $newState == 1)    {
            $startArray[] = $i;
        }
        else    {
            $stopArray[] = $i;
        }
        $isIgniOn = $newState;
    }
}