PHP для цикла - как избежать первой итерации? - PullRequest
2 голосов
/ 07 мая 2011

Учитывая этот цикл PHP for

$row->frequency = 1;
$row->date_1 = 10000;
$row->interval = 86400;


    for ($i = 0; $i <= $row->frequency; $i++) {

        $cal_data[] = array(

            'start' => strtotime($row->date_1) + $row->interval,

            );
    }

Я бы хотел, чтобы первая итерация цикла игнорировала + $row->interval, что дает мне в результате:

10000
96400

IЯ видел, что это сделано с модулем, но не смог заставить его работать здесь.У кого-нибудь есть предложения?

Спасибо!

Ответы [ 2 ]

4 голосов
/ 07 мая 2011

Используйте + ($i ? $row->interval : 0)

Другими словами, если $i равно нулю - первая итерация - добавьте 0 вместо $row->interval.Это троичный оператор (condition ? iftrue : iffalse), который примерно эквивалентен конструкции if/else, за исключением того, что он может использоваться в операторе.

1 голос
/ 07 мая 2011
for ($i = 0; $i <= $row->frequency; $i++) {
    if ($i == 0) {
          $val = strtotime($row->date_1) ;
    } else {
       $val = strtotime($row->date_1) + $row->interval;
    }
    $cal_data[] = array(

        'start' => $val

        );
}
...