gpt4 book ai didi

PHP:按母类别打印子类别元素组

转载 作者:太空宇宙 更新时间:2023-11-04 10:46:11 24 4
gpt4 key购买 nike

我必须创建一个菜单,其中包含按母类别分组的子类别元素列表,并从产品表中获取这些值:

类别

  • 子类别
  • 子类别
  • 类别

  • 子类别
  • 我明白了:

    <?php
    $query_cat = $db->prepare("SELECT * FROM products GROUP BY category ORDER BY category");
    $query_cat->execute();

    print '<li><strong>'. $category . '</strong></li>'; //Category

    while ($cat_row = $query_cat->fetch()) { //Subcategory
    print '<li><a href="/category/'. $cat_row['4'] .'">'. $cat_row['4'] .'</a></li>';
    }
    ?>

    products表结构是

    ID, name, stars, brand, category, priceavg, first-category

    如何获取类别名称并将其放在元素顶部?

    感谢所有提供的帮助。

    最佳答案

    您可以使用 array_group_by功能如下

    $query_cat = $db->prepare("SELECT name, category, first_category FROM products ORDER BY category");
    $query_cat->execute();

    $rows = $query_cat->fetchAll(PDO::FETCH_ASSOC);
    $items = array_group_by($rows, 'first_category');

    foreach($items as $key => $value) {
    echo '<li><strong>' . $key . '</strong></li>';
    foreach($value as $row) {
    echo '<li><a href="/category/'.$row['category'].'">'.$row['category'].'</a></li>';
    }
    }

    array_group_by 是一个通过所有数组成员共享的键或一组键对数组进行分组的函数。将 SQL 数据检索为关联数组后,您可以应用 array_group_by 函数获取类别和子类别等数组的数组。

    array_group_by 之后,这是您的 $items 数组结构的示例结果 https://3v4l.org/5WkDH

    最后的实例在这里 https://3v4l.org/cg9NN

    提示 Why is SELECT * considered harmful?考虑不要在查询中使用 SELECT * FROM

    编辑 如果您希望与低于 5.3 的 PHP 兼容,您只需将 [] 更改为 array() 短数组符号。此处为现场示例 https://3v4l.org/0VUn7 (测试从 PHP 4.3 到最新版本)

    关于PHP:按母类别打印子类别元素组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35380500/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com