Hi,

Mijn navigatie bestaat uit list items verdeeld over 4 kolommen en van links naar rechts.

Stel ik heb een array die ik vervolgens wegschrijf:


$arr = array('AAA', 'BBB', 'CCC', 'DDD', 'EEE', 'FFF','GGG','HHH','III','KKK');
            echo '<ul>';
            foreach ($arr as $key => $value) {
                if (($key % 4) == 0) {
                    echo '<li class="green">' . $value.'</li>';
                }
            }
            echo '</ul>';


            echo '<ul>';
            foreach ($arr as $key => $value) {
                if (($key % 4) == 1) {
                    echo '<li class="blue">' . $value.'</li>';
                }
            }
            echo '</ul>';
            
            echo '<ul>';
            foreach ($arr as $key => $value) {
                if (($key % 4) == 2) {
                    echo '<li class="red">' . $value.'</li>';
                }
            }
            echo '</ul>';
            
            echo '<ul>';
            foreach ($arr as $key => $value) {
                if (($key % 4) == 3) {
                    echo '<li class="black">' . $value.'</li>';
                }
            }
            echo '</ul>';




Het resultaat is wat ik wil, echter ik heb het idee dat dit veel gemakkelijker kan?

resultaat:


<ul>
<li class="green">AAA</li>
<li class="green">EEE</li>
<li class="green">III</li>
</ul>
<ul>
<li class="blue">BBB</li>
<li class="blue">FFF</li>
<li class="blue">KKK</li>
</ul>
<ul>
<li class="red">CCC</li>
<li class="red">GGG</li>
</ul>
<ul>
<li class="black">DDD</li>
<li class="black">HHH</li>
</ul>



[size=xsmall]Toevoeging op 29/06/2015 22:24:28:[/size]

Ik geef dus (zoals je ziet ;-) ) 4 x zelfde lus met 4 verschillende if statements, kan dit in 1 keer?

[size=xsmall]Toevoeging op 29/06/2015 22:55:58:[/size]

waarschijnlijk zelf het antwoord gevonden:



<?php
        $arr = array('AAA', 'BBB', 'CCC', 'DDD', 'EEE', 'FFF', 'GGG', 'HHH', 'III', 'KKK');
        $columns = 4;
        for ($i = 0; $i <= 3; $i++) {
            echo '<ul>';
            foreach ($arr as $key => $value) {
                if (($key % $columns) == $i) {
                    echo '<li>' . $value . '</li>';
                }
            }
            echo '</ul>';
        }
        ?>  
Als je de li's (left) float, dan kan alles in één ul denk ik?
Wanneer er op de "eerste regel" geen plek meer is, worden de li's op de tweede regel gezet en zo verder?

Probeer het eens met één ul.

Reageren