2016-10-10 1 views
1

Ich habe eine array, die keine haben kann. von Elementen darin. Jetzt möchte ich dieses Array loopen und Design erstellen, so dass jeder li 15 Elemente darin haben kann, wird der nächste Satz von li basierend auf einem Vielfachen von 15 Elementen erstellt.stecken mit einfachen php looping logik

Jetzt hat mein Array genau 15 Elemente und der Code versuche ich 2 li erstellen, die es nur 1 li erstellen sollte.

Vielleicht ist meine Logik zu schlecht oder ich vermisse etwas.

Hier ist mein Code: -

<?php $result = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); ?> 
    <div class="slide"> 
    <?php $design = '<ul class="slides"><li><div class="MainSlider">'; 
     foreach($result as $key=>$row) 
     { 
      $design .= '<div class="MainSliderPic">'.$key.'</div>'; 
      if(($key+1)% 15 == 0){ 
      $design .= '</div></li><li><div class="MainSlider">'; 
      } 

      if(count($result) == $key+1){  
      $design .= '</div></li></ul>'; 
      } 
     } 
    echo $design; 
    ?> 
    </div> 
+0

'if (($ key + 1)% 15 == 0) {' Der Operator% sollte das Problem sein es bedeutet, wenn Rest des Schlüssels $ um 15 geteilt ist bis 15 entspricht dies tun ... –

+0

& nur ein wenig Eingabe: Auf Ihrer sechsten Zeile haben Sie '. $ key' geschrieben. ... willst du sicher den Schlüssel ausgeben und nicht den Wert? (Könnte durch Ersetzen von $ key mit $ row erledigt werden) – Twinfriends

+0

Gemäß Ihrer Bedingung haben Sie 15 Datensätze, wenn Ihre 'modulo (%)' Bedingung erfüllt ist, wird die 'li' geschlossen und mit der neuen' li' begonnen. und schließlich aufzeichnen beendet es die 'li 'und div, also, wenn Sie' 15, 30, 45 ... 'Datensätze haben, erhalten Sie ein zusätzliches' li', das leer ist – KinjalMistry

Antwort

1

Mischen und Schließen von Tags in Ihrem Code. Tun Sie es getrennt, wo es hingehört, z.

$design = '<ul class="slides">'; 
$n = 0; 
foreach($result as $key=>$row) { 
    if ($n == 0) 
     $design .= '<li><div class="MainSlider">'; 

    $design .= '<div class="MainSliderPic">' . $key . '</div>'; 

    ++$n; 
    if ($n == 15) { 
     $design .= '</div></li>'; 
     $n = 0; 
    } 
} 

$design .= '</ul>'; 
echo $design; 
1

Versuchen folgenden Code:

<?php $result = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); ?> 
    <div class="slide"> 
    <?php $design = '<ul class="slides"><li><div class="MainSlider">'; 
     foreach($result as $key=>$row) 
     { 
      $design .= '<div class="MainSliderPic">'.$key.'</div>'; 
      if((($key+1)% 15 == 0) && (count($result) != ($key+1))){ 
      $design .= '</div></li><li><div class="MainSlider">'; 
      } 

      if(count($result) == $key+1){  
      $design .= '</div></li></ul>'; 
      } 
     } 
    echo $design; 
    ?> 
    </div> 
2

Sie array_chunk für sie zu erreichen, verwenden können: nicht Öffnung

$result = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); 

$chunks = array_chunk($result, 15); 

foreach ($chunks as $chunk) { 
    echo '<ul><li>'; 

    echo implode('</li><li>', $chunk); 

    echo '</li></ul>'; 
}