2016-10-26 1 views
-2

Ich habe die Liste, zum Beispiel:berechnen Daten für Schleife

<ul> 
<li>text</li> 
<li>text</li> 
<li>text</li> 
<li class="add">add</li> 
<li>text</li> 
<li class="add">add</li> 
<li>text</li> 
<li>text</li> 
<li>text</li> 
<li>text</li> 
<li>text</li> 
<li>text</li> 
<li class="add">add</li> 
<li>text</li> 
<li class="add">add</li> 
<li class="add">add</li> 
</ul> 

Und nächstes erzeuge ich diese Liste in PHP:

<ul> 
<?php for ($i=1; $i <= 11; $i++): ?> 
<li>text</li> 
<?php if (in_array($i, array(3, 4, 10))): ?> 
<li class="add">add</li> 
<?php endif ?> 
<?php if (in_array($i, array(10))): ?> 
<li class="add">add</li> 
<?php endif ?> 
<?php endfor ?> 
</ul> 

Diese gute Arbeit. Dies ist ein Schema und wenn $ i> 11, sollte li.add von Anfang an hinzugefügt werden. Zum Beispiel:

<ul> 
<li>text</li> 
<li>text</li> 
<li>text</li> 
<li class="add">add</li> 
<li>text</li> 
<li class="add">add</li> 
<li>text</li> 
<li>text</li> 
<li>text</li> 
<li>text</li> 
<li>text</li> 
<li>text</li> 
<li class="add">add</li> 
<li>text</li> 
<li class="add">add</li> 
<li class="add">add</li> 
//NEXT 
<li>text</li> 
<li>text</li> 
<li>text</li> 
<li class="add">add</li> 
<li>text</li> 
<li class="add">add</li> 
<li>text</li> 
<li>text</li> 
<li>text</li> 
<li>text</li> 
<li>text</li> 
<li>text</li> 
<li class="add">add</li> 
<li>text</li> 
<li class="add">add</li> 
<li class="add">add</li> 
// NEXT 
<li>text</li> 
<li>text</li> 
<li>text</li> 
<li class="add">add</li> 
<li>text</li> 
<li class="add">add</li> 
<li>text</li> 
<li>text</li> 
//END - NOT 11! 
</ul> 

So in PHP Ich muss:

<ul> 
<?php for ($i=1; $i <= 28; $i++): ?> 
<li>text</li> 
<?php if (in_array($i, array(3, 4, 10, 14, 15, 21, 25, 26))): ?> 
<li class="add">add</li> 
<?php endif ?> 
<?php if (in_array($i, array(10, 21))): ?> 
<li class="add">add</li> 
<?php endif ?> 
<?php endfor ?> 
</ul> 

Wie kann ich berechnen Positionen für in_arrays automatisch? Immer nach 3, 4 und 10 in einer Schleife (11 Elemente) sollte dies Li.add hinzufügen.

Antwort

0

Sie müssen nicht alles neu zu berechnen, solange die Regel consisntent ist:

<ul> 
<?php for ($i=1; $i <= 22; $i++): ?> 
<li>text</li> 
<?php if (in_array($i%11, array(3, 4, 10))): ?> 
<li class="add">add</li> 
<?php endif ?> 
<?php if (in_array($i%11, array(10))): ?> 
<li class="add">add</li> 
<?php endif ?> 
<?php endfor ?> 
</ul> 

Für $i < 11 dann ($i%11) = $i dann geht es wieder um.