Есть массив.
    public $time = array(
        'confirm' => array('id' => 1, 'time' => 30),
        'firstnight' => array('id' => 2, 'time' => 30),
        'day' => array('id' => 3, 'time' => 300),
        'nextnight' => array('id' => 4, 'time' => 30),
        'nextday' => array('id' => 5, 'time' => 300),
    );Есть вот такая обработка.
        $aTime = $this->time;
        reset ($aTime);
        while (list($name, $time) = each ($aTime)) {
            $nexttime += $time['time'];
            $currentdo = $time['id'];
            $currentname = $name;
            if ($currenttime <= $nexttime)
                break;
            $i++;
            if ($name == 'nextday') {
                //var_dump(prev($aTime));
                //var_dump(prev($aTime));
                prev($aTime); // возвращаемся из конца массива в nexday
                prev($aTime); // и next night
            }
        }Что то у меня два prev не работают. точнее хз. Он делает еще итерацию цикла, но все равно остается на nextday