首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果变量有重复,那么PHP是否只显示第一个实例?

问如果变量有重复,那么PHP是否只显示第一个实例?
EN

Stack Overflow用户
提问于 2013-09-28 22:11:27
回答 3查看 1.6K关注 0票数 3

我创建了一个mysql表,其中包括这些行和值:

代码语言:javascript
复制
   category | item_name
   ======================= 
   Dinner   |  Lobster
   Dinner   |  Pizza
   Lunch    |  Sandwich
   Lunch    |  Soup
   Lunch    |  Salad
  -------------------------

然后查询数据库,结果放在一个数组"$menu_selected“中。我循环通过"$menu_selected“来显示结果。

代码语言:javascript
复制
    foreach($menu_selected as $m):
           echo $category = $m->category . "<br>";
           echo $item_name = $m->item_name . "<br><br>";
    endforeach;

输出:

代码语言:javascript
复制
    Dinner
    Lobster

    Dinner
    Pizza

    Lunch
    Sandwich

    Lunch
    Soup

    Lunch
    Salad

我如何过滤PHP中的类别,这样它就不会只回显每个类别的第一个实例?类别行值并不总是为“晚餐”或“午餐会”,我希望能够回显这个类别,而不将其与常量进行比较,比如if($category =‘晚餐’){}。我花了一周的时间研究,却搞不清楚。任何人的帮助都将不胜感激。

我希望输出如下所示:

代码语言:javascript
复制
 **Dinner**
 Lobster
 Pizza
 Sandwich

 **Lunch**
 Sandwich
 Soup
 Salad
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-09-28 22:17:01

确保在查询中按类别订购。然后,只需在循环之外添加一个$category变量,如果该变量已更改,则输出标头。

代码语言:javascript
复制
$category = '';
foreach($menu_selected as $m) {
     if ($m->category != $category) {
        echo "**$m->category** <br>";
        $category = $m->category;
     }
     echo $m->category . "<br>";
     echo $m->item_name . "<br><br>";
}
票数 3
EN

Stack Overflow用户

发布于 2013-09-28 22:19:25

只需使用2预测法。第一类为第二类,第二类为物品

代码语言:javascript
复制
foreach($menu_selected as $m1):
       echo $category = $m1->category . "<br>";        
    foreach($menu_selected as $m):
       echo $item_name = $m->item_name . "<br><br>";
            if ($m->category != $m1->category) 
                    {
                      break;
                    }
    endforeach;
endforeach;
票数 0
EN

Stack Overflow用户

发布于 2013-09-28 22:20:25

代码语言:javascript
复制
$cat_item_array = ARRAY();

foreach($menu_selected as $m) {
    if (!isset($cat_item_array[$m->category])) {
     $cat_item_array[$m->category] = $m->item_name;
     echo "found new category: ".$m->category . " (Added item: ".$m->item_name.")<br>";
     continue;
   }
    $cat_item_array[$m->category] = $m->item_name;
    echo "Added item ".$m->item_name." to category ".$m->category.".<br><br>";
}

print '<pre>'; var_dump($cat_item_array); print '</pre>';
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19072193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档