如何从阵列进行嵌套列表中的PHP(小白) [英] How to make a Nested List from array in PHP (noob)

查看:127
本文介绍了如何从阵列进行嵌套列表中的PHP(小白)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有用户选择项的应用程序,然后将它填补了中有两列的表:类别和项目。它是这样的:

I have an app that users choose items and then it fills a table that has two columns in it: Category and Items. Its something like this:

Category  | Items 
-----------------
PET       | Dog Food
HEALTH    | Tooth Brush
PET       | Cat Food
COLD FOOD | Steak
COLD FOOD | Eggs

在我的SELECT语句中我为了按类别的数据然后通过项目和我使用一个while循环来将数据放到一个数组。

In my select statement I order the data by Category then by Items and I am using a WHILE loop to drop the data into an array.

while($listItems = mysql_fetch_array($results))
{
    $myArray[] = array("category" => $listItems["Category"],
                       "item"     => $listItems["Name"]);
}

在我做的print_r($ myArray的);我得到的是这样的:

When I do a print_r($myArray); I get something like this:

Array ( [0] => Array ( [category] => Cold Food [item] => Steak )
        [1] => Array ( [category] => Food      [item] => Eggs )
        [2] => Array ( [category] => Health    [item] => Tooth Brush )
        [3] => Array ( [category] => Pet       [item] => Cat Food )
        [4] => Array ( [category] => Pet       [item] => Dog Food ) )

我所想要做的是将数据输出到一个嵌​​套列表这样的事情。

What I am wanting to do is output the data into a nested list something like this.


     
  • 寒食

  •   

          
    • 牛排

    •     
    • 鸡蛋

    •   

         
    • 牙刷

    •   

         
    • 猫粮

    •    
    • 狗粮

    •   

    任何帮助,欢迎!谢谢!

    Any help is welcomed! Thanks!

    推荐答案

    试试这个:

    while($listItems = mysql_fetch_array($results))
    {
        $cat  = $listItems['Category'];
        $name = $listItems['Name'];
    
        if(!isset($myArray[$cat]))
          $myArray[$cat] = array();
    
        $myArray[$cat][] = $name;
    }
    

    然后,输出它,你应该这样做:

    Then, to output it you'd do this:

    $buffer = '<ul>';
    foreach($myArray as $cat => $items) {
       $buffer .= "<li>$cat</li><li><ul>";
       foreach($items as $item) {
          $buffer .= "<li>$item</li>";
       }
       $buffer .= '</ul></li>';
    }
    $buffer .= '</ul>';
    echo $buffer;
    

    这篇关于如何从阵列进行嵌套列表中的PHP(小白)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆