Мне нужно использовать $counter
в моем цикле, который возвращает серию, как это:
1 2 2 1 1 2 2 1
К сожалению, я не очень хорош в математике, что бы я ни пытался зайти в тупик.
это последнее, что я попробовал.
$counter = 0;
while( statement ) {
++$counter;
// Making sure the second element is loaded
if( $counter > 2 )
$twoloaded = true;
if( $counter >= 2 )
--$counter;
echo '<article class="post post-style-' . $counter . '"> ....... </article>';
}
В конце мне нужно вывести HTML, как это:
<article class="post post-style-1">
...
</article>
<article class="post post-style-2">
...
</article>
<article class="post post-style-2">
...
</article>
<article class="post post-style-1">
...
</article>
<article class="post post-style-1">
...
</article>
<article class="post post-style-2">
...
</article>
Общий подход:
$pattern = [ 1, 2, 2, 1 ]; // or array( 1, 2, 2, 1 ); for PHP < 5.4
$idx = 0;
while ( expression ) {
$number = $pattern[ $idx ++ % count( $pattern ) ];
}
Как насчет наличия $ повторяемой переменной. Вы можете использовать его, чтобы проверить, повторяется ли 1 или 2 перед переключением.
<?php
$counter = 1;
$repeated = 1;
while(true) {
print '<article class="post post-style-' . $counter . '"> ....... </article>' . "\n";
if($repeated == 2) {
if($counter < 2) {
$counter++;
}
else if ($counter == 2) {
$counter--;
}
$repeated = 1;
}
else {
$repeated++;
}
}
?>