无法访问php中的嵌套数组

时间:2014-05-06 10:34:06

标签: php arrays foreach

我有一个类似他们的数组我想像这样访问这个子类别数组

foreach($data as $parent_category){
        $ndata=$parent_category['subCategory'];
        foreach ($ndata as $subCategory){

 }
}

$ data是我的主要数组 print_r($ data)给出这个输出

当我访问此数组时出现错误未定义索引:subCategory

请帮帮我......

Array (
[1] => Array
    (
        [name] => Indian Culture
        [subCategory] => Array
            (
                [0] => Array
                    (
                        [name] => Indain Culture-1
                        [articleId] => 10
                    )

                [1] => Array
                    (
                        [name] => culture -1 
                        [articleId] => 22
                    )

            )

    )

[5] => Array
    (
        [name] => ABC CULTURE
    )
     

4 个答案:

答案 0 :(得分:4)

如你所见,这里:

[5] => Array
(
    [name] => ABC CULTURE
)

您的数组不包含索引为“subCategory”的元素。因此,只需通过调用:

检查索引是否存在
...
if (isset($parent_category['subCategory'])) {
...

答案 1 :(得分:0)

数组键5没有子类别索引。

数组中的第一个条目没问题。

您可以使用array_key_exists函数检查subCategory是否存在。

http://uk1.php.net/array_key_exists

Difference between isset and array_key_exists

答案 2 :(得分:0)

带密钥5的项目不包含subCategory密钥。要避免警告,请尝试:

foreach($data as $parent_category){
    if (isset($parent_category['subCategory'])) {
        $ndata = $parent_category['subCategory'];
        foreach ($ndata as $subCategory){

        }
    }
}

答案 3 :(得分:0)

修改了下面的代码,因此对于那些没有子类别的情况,你不会获得未定义的索引。

foreach($data as $parent_category){
    $ndata=isset($parent_category['subCategory'])?$parent_category['subCategory']:'';
    if(!empty($ndata)){
      foreach ($ndata as $subCategory){

      }
    }
}