2014-05-06 47 views
-1

我有和他們一樣的陣列我想訪問該子類數組這樣無法訪問嵌套數組中的PHP

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

} 
} 

其中$數據是我的主陣列的print_r($數據)給這個輸出

當我訪問這個數組我得到一個錯誤未定義指數:子類別

請幫助我......

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 
    ) 

+1

它這整個陣列?因爲只有數組中的第一個項目有子類別,另一個只有名稱,因此是您的未定義索引 –

回答

4

正如你看到的,在這裏:

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

您的陣列不包含指數 「子類別」 元素。所以只是檢查,該指數存在通過調用:

... 
if (isset($parent_category['subCategory'])) { 
... 
0

項目與關鍵5不包含subCategory關鍵。爲了避免警告,嘗試用:

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

     } 
    } 
} 
0

修改代碼如下,這樣你就不會爲那些情況下,你沒有子類別得到了一個未定義的索引。

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

     } 
    } 
}