PHP - приращение foreach более 1 - PullRequest
0 голосов
/ 26 октября 2018

У меня есть foreach цикл, в котором мне нужно назначить координаты после определенных шагов. Для этого примера $ n + 4 (174 178 182, ...). Я знаю, что решить множественный ввод n++.

$n = 174;
foreach($items as $item){
    echo $item . ' coor: ' . $n . '<br>';
    $n++;
    $n++;
    $n++;
    $n++;
}

Интересно, нельзя ли решить более элегантно.

Ответы [ 2 ]

0 голосов
/ 26 октября 2018

@ Решение и объяснение Бармара верны и решают вашу проблему. Но вот альтернативный способ написания кода, который вам может пригодиться:

$n = 174;
foreach($items as $i => $item){
    echo $item . ' coor: ' . $n + $i*4 . '<br>';
}

Обратите внимание, это будет работать только в том случае, если ваши ключи массива числовые и увеличиваются. Если это не так, вам просто нужно изменить $items в foreach на array_values($items).

0 голосов
/ 26 октября 2018

Вы можете использовать:

$n += 4;

Когда вы ставите оператор перед =, он создает оператор, который объединяет исходное значение цели с источником, использующим эту операцию, что эквивалентно:

$n = $n + 4;

Аналогично, если вы напишите:

$n *= 10;

, то же самое, что и

$n = $n * 10;
...