dry18813 2012-03-24 13:49
浏览 54

在这种情况下,我如何使用“foreach”代替“for”循环?

I want to make a loop to display each category and all sub-categories. I have this array:

$Allcategories = array(
  array(
    array("Category 1", 'category1'),
    array("Sub 1", 'sub1'),
    array("Sub 2", 'sub2'), 
    array("Sub 3", 'sub3') 
  ),
  array(
      array("Category 2", 'category2'),
      array("Sub 1", 'sub1'),
      array("Sub 2", 'sub2'), 
      array("Sub 3", 'sub3')
    )
);

I already made a 3-nest-for loop that works but I would like to simplify it with a foreach. Here is my for loop:

foreach ($Allcategories as $val_1)
{    
    echo "<a href='index.php?category=", $val_1[0][1], "'>", $val_1[0][0], "</a>";    
    foreach ($val_1 as $val_2)
    {    
        foreach ($val_2 as $val_3)
        {
            printf('<li><a href="index.php?category=%1$s">%1$s</a><br />', $val_3);
        }    
    }    
}

The problem is I'm getting this result:

Category 1

    -Category 1

    -category1

    -Sub 1

    -sub1

    -Sub 2

    -sub2

  • 写回答

2条回答 默认 最新

  • doumaji6215 2012-03-24 13:55
    关注

    The inner loops shouldn't iterate over $Allcategories, but rather, over the values from the outer loops:

    foreach ($Allcategories as $layerNum => $layer) {
        ...
        foreach ($layer as $rowNum => $row) {
            ...
            foreach ($row as $colNum => $category) {
    
    评论

报告相同问题?

悬赏问题

  • ¥15 蓝桥oj3931,请问我错在哪里
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染