首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >foreach for array of array

foreach for array of array
EN

Stack Overflow用户
提问于 2014-10-06 20:57:28
回答 2查看 70关注 0票数 0

我正在尝试将Array的Array中的元素添加为

代码语言:javascript
复制
$categoryTreeStructure[$grantCategoryName][$parentCategoryName][$subCategoryText]['text'] =$subCategoryText;
// GET CHILD CATEGORY URL
$categoryTreeStructure[$grantCategoryName][$parentCategoryName][$subCategoryText]['url'] = $childPageLink;

我尝试循环遍历每个类别,如下所示

代码语言:javascript
复制
foreach($categoryTreeStructure as $categoryName => $subCategories ){
echo $categoryName."<br>";
}

我在$categoryName中变得一片空白。我需要遍历每个类别,我该怎么做呢?

EN

回答 2

Stack Overflow用户

发布于 2014-10-06 21:09:53

代码语言:javascript
复制
foreach($categoryTreeStructure as $categoryName => $subCategories ){
 foreach($subCategories as $key => $val){
    foreach($val as $subkey => $subval){
        echo $subval['text'] . "<br>";
        echo $subval['url'];
    }
 }
}

我能看到它工作的唯一方法是使用嵌套循环

票数 0
EN

Stack Overflow用户

发布于 2014-10-06 21:16:15

你的问题是你的数组的第二个维度不是目标。你的数组看起来像这样:

代码语言:javascript
复制
Array
(
    [] => Array
        (
            [] => Array
                (
                    [foo] => Array
                        (
                            [text] => foo
                            [url] => Bar
                        )

                )

        )

)

如果你想接受你的数据,你需要一个这样的foreach:

代码语言:javascript
复制
foreach($categoryTreeStructure[$parentCategoryName] as $categoryName ){
        print_r($categoryName);
}

这将输出:

代码语言:javascript
复制
Array
(
    [foo] => Array
        (
            [text] => foo
            [url] => Bar
        )

)

但是在你的例子中,你想要直接的文本,所以:

代码语言:javascript
复制
foreach($categoryTreeStructure[$grantCategoryName][$parentCategoryName][$subCategoryText] as $categoryName ){
        echo $categoryName;

}

这将输出:

代码语言:javascript
复制
foo
Bar

这是你的例子的答案,因为你的例子看起来只在最后一个数组中循环,但如果你像预期的那样有多个subCategoryText,你将需要像@Rossco指出的那样嵌套循环:

代码语言:javascript
复制
foreach($categoryTreeStructure as $categoryName => $subCategories ){
 foreach($subCategories as $key => $val){
    foreach($val as $subkey => $subval){
        echo $subval['text'] . "<br>";
        echo $subval['url'];
    }
 }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26216725

复制
相关文章

相似问题

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