繁体   English   中英

如何遍历此多维数组?

How can I loop over this multi dimensional array?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

所以我试图遍历一系列categoriessub-categories但是我遇到了foreach loop麻烦。 一旦数组工作完毕,我将创建一个菜单,如果您将鼠标悬停在某个类别上,则会显示子类别。

这么说吧,我在逻辑上没有希望:| 这是我的数组以及尝试过的循环:

$categories = array(
        'arr' => array(
           'cat'=>'sport',
           'subcats'=> array(
               "surfing", "basketball", "nfl", "afl"
            )
        ),
        'arr' => array(
           'cat'=>'Automotive',
           'subcats'=> array(
               "cars", "f1", "bikes", "etc"
            )
        ),
        'arr' => array(
           'cat'=>'comedy',
           'subcats'=> array(
               "stand up", "pranks", "...", "test"
            )
        )

  );


  //Loop1
  foreach ($categories as $key => $value) {
        if($key == "arr"){
            foreach ($key as $key => $value) {
                echo $value;
                if($key == "cat"){
                    echo "cat";
                }
                else{
                    echo $value;
                }
            }
            // echo $key . "<br />";
            // if($key == 'subcats'){
            // echo "________".$key."<br />";
            // }
        }
    }


    //Attempt number 2
    foreach ($categories as $key => $value) {
        if($key == "arr"){
            while($key){
                echo $value;
                if($key == "cat"){
                    echo $value;
                }
                if($key == "subcats"){
                    while($key){
                        echo $value[$key];
                    }
                }
            }
        }
    }

我在此之后尝试的更新代码

这样做可以,但是唯一的问题是它只会循环访问最后一个arr=>array()而不会循环遍历任何一个。

$i=0;
    foreach ($categories as $key => $value) {
    if($key == "arr"){
        foreach ($categories['arr'] as $sub => $val) {
            if($sub == "cat"){
                echo $val . " => ";
            }
            else if($sub == "subcats"){
                for($i=0; $i<4; $i++){
                    echo $val[$i] . ", ";
                }
            }
        }
    }
}
1 个回复

如果可以重组数组,则可以将类别作为键,将子类别作为值:

$categories = array(
        'sport' => array(
               "surfing", "basketball", "nfl", "afl"
        ),
        'Automotive' => array(
               "cars", "f1", "bikes", "etc"
        ),
        'comedy' => array(
               "stand up", "pranks", "...", "test"
            )
  );
 // Here is an imploded list, you don't need a second loop then
 foreach($categories as $cat => $subcat) {
        echo "<h1>".$cat."</h1>";
        echo '<ul>';
        echo '<li>'.implode('</li>'.PHP_EOL.'<li>',$subcat).'</li>';
        echo '</ul>';
    }
1 遍历多维数组

我有一个具有这种结构的数组: 我如何遍历数组以输出所有可能的排列,即 另一个问题是,我不知道可能有多少个条件数组,因此很遗憾,我不能只使用3个嵌套循环。 我正在使用PHP,尽管我认为伪代码解决方案会很好,并且我可以适应它。 ...

2 遍历多维数组?

我有一个名为sold的数组,其中包含以下四个数组: 这四个数组是类的对象,从.txt文件导入。 我想计算每个数组中的第一个值,以查找存储在first的随机选择的数字。 无论我尝试什么,我总是得到这样的错误: 问题是我似乎无法在所有数组中都使用第一个值。 ...

3 遍历多维数组

我正在使用php和dropbox api开发应用程序,并试图遍历多维数组并输出到表。 到目前为止,这是我的代码: 这是数组的print_r的输出: 我尝试了多种不同方法的组合,例如: 多维数组中的问题循环 PHP foreach遍历多维数组 PHP f ...

4 遍历多维数组

我有这个数组: 我想遍历数组,仅在表格中返回每个学期(1年,2年和3年)每种产品的价格。 ...但是我什至无法遍历数组。 这是调用API并返回std对象的代码: 这是我尝试的: 以下返回错误:“不能将STDClass类型的对象用作数组” 我也尝试过: ...

5 如何遍历多维数组?

我有这样的数组。 该数组是动态创建的 我需要做的是使用2 foreach或1 foreach和1 for循环,以便我可以像这样获得日期的每个值 但只能检索2013-04-02和2013-04-03,即数据未上传的0索引日期和电池问题的0索引日期。 基本上,我需要比较每个值和其 ...

6 如何遍历多维数组

我有一个看起来像这样的数组: 我想做的是遍历“ apple”元素并输出如下内容: 我该怎么做? 因此,我的主要目标是将日期和值组织在一起。 我的数组数据比上面的示例长得多,但是我只需要帮助才能使工作代码循环并回显类似上面的示例的内容。 我尝试使用foreach ,但 ...

7 如何遍历多维数组?

我目前正在从公司的API获取JSON响应,并将其转换为如下所示的PHP数组: 当我在$api_details上运行var_dump时,我得到了: 我正在尝试做两件事,却无法弄清楚如何使用多维数组。 我需要检查metadata &gt; iserror是否为false 。 ...

8 遍历多维数组

我发现这个文章通过多维数组如何循环快速。 我正在使用Method 6: Nested loops with linear array and single incrementing index. 它说Method 8: Single loop with linear array an ...

9 遍历多维数组

我正在使用以下代码遍历多维数组,并找到去过某所大学的用户,在本例中为UCF。 多维数组看起来像这样。 以下是来自Facebook Graph API的朋友列表: 我运行了一个类似的程序来查找确实有效的某些主题的用户专业,但是由于某些原因,上面的代码不起作用。 这是可行的: ...

10 如何遍历多维数组

当我发送print_r命令时,我在数组下面, 我想回显或获取path的值以在codeigniter中作为电子邮件发送,意味着$ attachment = /path/image.png等,因此将附加文件。 我尝试了以下方法,但无法正常工作, $ this-&gt; inp ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM