将 PHP 循环拆分为 2 个列表


Split PHP loop into 2 lists

我已经构建了以下函数,但是是否可以让它将我的列表从一个拆分为多个,这样我最多可以有 8 个<li><ul>

function buildProductsMenu($base) {
    $sql = "SELECT *
            FROM tbl_category";
    $result     = dbQuery($sql);
    while ($row = dbFetchAssoc($result)) {
    echo "<ul>";        
        echo "<li class='title'>$row[cat_name]</li>";
            $sqlProd = "SELECT *
                FROM tbl_product WHERE cat_id = $row[cat_id]";
            $resultProd     = dbQuery($sqlProd);
            while ($rowProd = dbFetchAssoc($resultProd)) {
                extract($rowProd);
                echo "<li><a href='".$base."products/".strtolower($row['cat_name'])."/".strtolower($pd_name)."'>".$pd_name."</a></li>";
            }       
    echo "</ul>";               
    }
}

与尤格迈斯特解决方案一起去

function buildProductsMenu($base) {
    $sql = "SELECT *
            FROM tbl_category";
    $result     = dbQuery($sql);
    while ($row = dbFetchAssoc($result)) {
        echo "<ul>";        
        echo "<li class='title'>$row[cat_name]</li>";
        $sqlProd = "SELECT * FROM tbl_product WHERE cat_id = $row[cat_id]";
        $resultProd     = dbQuery($sqlProd);
        $counter = 1;
        while ($rowProd = dbFetchAssoc($resultProd)) {
            extract($rowProd);
            if($counter % 12 == 0) {
                $counter = 1;
                echo "</ul><ul style='margin-top:25px;'>";
            }
            echo "<li><a href='".$base."products/".strtolower($row['cat_name'])."/".strtolower($pd_name)."'>".$pd_name."</a></li>";
            $counter++;
        }
        echo "</ul>";
    }
}
您可以

添加一个计数器,当该计数器达到 8 时,您将开始一个新的ul

$counter = 1;
while ($rowProd = dbFetchAssoc($resultProd)) {
    extract($rowProd);
    if($counter % 8 == 0) {
        $counter = 1;
        echo "</ul><ul>";
    }
    echo "<li><a href='".$base."products/".strtolower($row['cat_name'])."/".strtolower($pd_name)."'>".$pd_name."</a></li>";
    counter++;
} 

好的,与其直接从函数中回显 LI,我建议您将它们全部添加到数组中,一旦事情在数组中,它总是更容易管理。

在最终的 LI 数组上使用 array_chunk(),它会将其分成八组。