我正在尝试将Array的Array中的元素添加为
$categoryTreeStructure[$grantCategoryName][$parentCategoryName][$subCategoryText]['text'] =$subCategoryText;
// GET CHILD CATEGORY URL
$categoryTreeStructure[$grantCategoryName][$parentCategoryName][$subCategoryText]['url'] = $childPageLink;我尝试循环遍历每个类别,如下所示
foreach($categoryTreeStructure as $categoryName => $subCategories ){
echo $categoryName."<br>";
}我在$categoryName中变得一片空白。我需要遍历每个类别,我该怎么做呢?
发布于 2014-10-06 21:09:53
foreach($categoryTreeStructure as $categoryName => $subCategories ){
foreach($subCategories as $key => $val){
foreach($val as $subkey => $subval){
echo $subval['text'] . "<br>";
echo $subval['url'];
}
}
}我能看到它工作的唯一方法是使用嵌套循环
发布于 2014-10-06 21:16:15
你的问题是你的数组的第二个维度不是目标。你的数组看起来像这样:
Array
(
[] => Array
(
[] => Array
(
[foo] => Array
(
[text] => foo
[url] => Bar
)
)
)
)如果你想接受你的数据,你需要一个这样的foreach:
foreach($categoryTreeStructure[$parentCategoryName] as $categoryName ){
print_r($categoryName);
}这将输出:
Array
(
[foo] => Array
(
[text] => foo
[url] => Bar
)
)但是在你的例子中,你想要直接的文本,所以:
foreach($categoryTreeStructure[$grantCategoryName][$parentCategoryName][$subCategoryText] as $categoryName ){
echo $categoryName;
}这将输出:
foo
Bar这是你的例子的答案,因为你的例子看起来只在最后一个数组中循环,但如果你像预期的那样有多个subCategoryText,你将需要像@Rossco指出的那样嵌套循环:
foreach($categoryTreeStructure as $categoryName => $subCategories ){
foreach($subCategories as $key => $val){
foreach($val as $subkey => $subval){
echo $subval['text'] . "<br>";
echo $subval['url'];
}
}
}https://stackoverflow.com/questions/26216725
复制相似问题