【问题标题】:php print array using nested foreach使用嵌套foreach的php打印数组
【发布时间】:2009-06-26 05:13:44
【问题描述】:

我想问一下如何用组织方式打印出这个数组

这是我的数组

> Array (
>     [item1 under Category_1] => Category_1
>     [item2 under Category_1] => Category_1
>     [item3 under Category_2] => Category_2
>     [item4 under Category_3] => Category_3
>     [item5 under Category_3] => Category_3
>     [item6 under Category_3] => Category_3
>     [item7 under Category_3] => Category_3
>     [item8 under Category_3] => Category_3 )

输出应该是这样的:

Category_1
  item1
  item2
Category_2
  item3
Category_3
  item4
  item5
  item6
  item7
  item8

有什么办法可以做到吗?还是我排列数组的逻辑方式不对?

我的数据库表记录是这样的

category item
   1       1
   1       2
   2       3
   3       4
   3       5
   3       6
   3       7
   3       8

有人可以帮忙吗?

【问题讨论】:

    标签: foreach


    【解决方案1】:

    您可能需要调整布局和换行符,但我想您明白了:

    asort($your_array);
    foreach($your_array as $key => $value){
      if($key_temp != $key){
        echo $key."\r\n";
      }  
      echo " ".$value."\r\n";  
      $key_temp = $key;
    }
    

    【讨论】:

      【解决方案2】:

      先查询

      $myarray = array();
      $result = mysql_query("SELECT category , item FROM mytable order by category , item ");
      
      while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
      
      $myarray[$row['category'] ][]  = $row['item'];
      
      }
      

      现在你得到一个二维数组

      现在在这个数组上运行 2 个循环(foreach 或 for) 并打印输入项的密钥,然后打印此输入项中的项目

      foreach ($array as $key => $val) {
          print "Key $key\n";
          for($i=0;$i<count($val);$i++)
             print "val $val[$i]\n";
      
      
      }
      

      这是一个例子,你可以改进它; 我希望这个想法很清楚

      【讨论】:

      • 我认为他正在寻找一种将其打印出来的方法,而不仅仅是存储它。
      猜你喜欢
      • 2018-07-04
      • 2017-09-18
      • 2019-05-28
      • 2011-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-25
      • 2018-07-09
      相关资源
      最近更新 更多