/ / Erstelle neue ul nach jeweils 13 li Elementen - php, html, opencart

Erstellen Sie nach jeweils 13 li-Elementen eine neue ul - php, html, opencart

Zuallererst weiß ich nicht, wie man in PHP zählt, vielleicht könnte mir jemand eine gute Quelle zum Lesen empfehlen;

Zweitens, ich möchte nicht darum bitten, das für mich zu lösen, aber ich möchte nur einen Hinweis oder eine einfachere Erklärung, die Sinn machen würde;

Hier ist meine Funktion:

  <ul>
<?php foreach ($categories as $category) { ?>
<li>
<a href="<?php echo $category["href"]; ?>"><p><?php echo $category["name"]; ?></p></a>
<?php if ($category["children"]) { ?>
<div>
<?php for ($i = 0; $i < count($category["children"]);) { ?>
<?php $j = $i + ceil(count($category["children"]) / $category["column"]); ?>
<?php for (; $i < $j; $i++) { ?>
<?php if (isset($category["children"][$i])) { ?>
<ul>
<li class="none"><h1><?php echo $category["children"][$i]["name"]; ?></h1></li>
<?php if ($category["children"][$i]["children_level2"]) { ?>
<?php for ($wi = 0; $wi < count($category["children"][$i]["children_level2"]); $wi++) { ?>
<li>
<a href="<?php echo $category["children"][$i]["children_level2"][$wi]["href"]; ?>"><?php echo $category["children"][$i]["children_level2"][$wi]["name"]; ?></a>
</li>
<?php } ?>
<?php } ?>
</ul>
<?php } ?>
<?php } ?>
<?php } ?>
</div>
<?php } ?>
</li>
<?php } ?>
</ul>

Ich möchte diesen Teil, alle 13 li-Elemente, um ein neues .ul zu erstellen. ./ul. Stichworte

<?php if (isset($category["children"][$i])) { ?>
<ul>
<li class="none"><h1><?php echo $category["children"][$i]["name"]; ?></h1></li>
<?php if ($category["children"][$i]["children_level2"]) { ?>
<?php for ($wi = 0; $wi < count($category["children"][$i]["children_level2"]); $wi++) { ?>
<li>
<a href="<?php echo $category["children"][$i]["children_level2"][$wi]["href"]; ?>"><?php echo $category["children"][$i]["children_level2"][$wi]["name"]; ?></a>
</li>
<?php } ?>
<?php } ?>
</ul>

<ul><li>maximum of 13 elements</li></ul>
after 13 <li></li> elements create new <ul></ul> tags and put the 14 <li></li> element into the new <ul></ul> tag

Ich hoffe, ich habe erklärt, was ich tun möchte, denn jetzt werde ich auf deine Antworten warten,

p.s. Das ist mehr für meine Lernfähigkeiten als für die eigentliche Arbeit, also danke im Rat

Antworten:

0 für die Antwort № 1

Es ist einfach. Benutze Bedingung

if ($wi && $wi % 13 == 0) {
print "</ul><ul>";
}

0 für die Antwort № 2

Um 13 Elemente zu zählen, können Sie den Modulo-Operator verwenden %. Die Idee ist das ($iw % 13) ist gleich 0, wenn der Inhalt von $iw ist ein Vielfaches von 13. (sehen Sie mehr über die Modulo-Operation)

Mit einem if Aussage, die Sie einfügen können </ul><ul> wenn du in deinem brauchst for Schleife.


0 für die Antwort № 3

Es gibt zwei Möglichkeiten, die ich mir vorstellen kann:

  • Sie könnten einen separaten Zähler haben, der auf 1 zurückgesetzt wird und einen Wert ausgibt <ul> jedes Mal, wenn es 13 erreicht
  • oder Sie könnten jedes Mal überprüfen, ob $wi ID teilbar durch 13:

     <?php
    for ($wi = 0; $wi < count($category["children"][$i]["children_level2"]); $wi++) {
    if ($wi && $wi % 13 == 0) {
    // output <ul>
    }
    }
    ?>
    

Wenn Sie sich nicht sicher sind was? % bedeutet, hier ist das Richtige PHP Handbuchseite