foreach с циклом / альтернативными вариантами - PullRequest
0 голосов
/ 23 сентября 2011

Я ищу самый быстрый (производительный) способ для циклического / альтернативного 2 значения внутри цикла foreach.Точно так же, как умные работы: http://www.smarty.net/docsv2/en/language.function.cycle

Ответы [ 2 ]

1 голос
/ 23 сентября 2011

Циклировать легко с оператором по модулю.

$cycle = $iteration % $cycles;

Если, например, $cycles равно 2 , то $cycle будет содержать 0 и 1 чередуется при увеличении $iteration.

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

$lookup = array('value1', 'value2');
$value = $lookup[$cycle];

foreachцикл не отслеживает итерации;Вы бы хотели использовать для этого цикл for.Или увеличьте переменную итерации самостоятельно.

0 голосов
/ 23 сентября 2011
$cycle = array('value1', 'value2');
$i = 0;

foreach (...) {
    $cycle[$i] // current cycle value
    ...
    $i = 1 - $i; // here be cycling
}

PS И не думайте, что вы должны очень беспокоиться о производительности в этом случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...