2013-05-07 96 views
0

我有多維數組。它可以達到N-水平。我想收集唯一的名字。從孩子名到父母。例如我需要這樣多維數組提取名稱多維數組

名稱輸出=> 「運動/ Algemeen/techn.sp.ondgd/ondergoed達梅斯/運動BH」

。等級可以增加到N個數字。

[categories] => Array 
      (
       [0] => Array 
        (
         [@id] => 1 
         [name] => 78057 | Sport bh 
         [parent] => Array 
          (
           [@id] => 2 
           [name] => 7805 | ondergoed dames 
           [parent] => Array 
            (
             [@id] => 3 
             [name] => 780 | techn.sp.ondgd 
             [parent] => Array 
              (
               [@id] => 4 
               [name] => Algemeen 
               [parent] => Array 
                (
                 [@id] => 5 
                 [name] => Sport 
                ) 

              ) 

            ) 

          ) 

        ) 

      ) 
+0

而你嘗試過什麼到目前爲止? – Rikesh 2013-05-07 10:28:47

+0

看到我可以使用foreach循環提取數據。但我不能預測水平。必須有一些最簡單的方法來實現這一點。所以如果有人幫助我,那將會非常感激。 – Palanikumar 2013-05-07 10:42:14

+0

@Palanikumar至少你必須走低谷'foreach'! – powtac 2013-05-07 10:43:29

回答

1
$arrPush = array(); 
function iterator($arr){ 
    global $arrPush; 
    foreach($arr as $key => $val){ 
     if(is_array($val)) 
      iterator($val); 
     if($key == "name"){ 
      $str = explode("|", $val); 
      $arrPush[] = isset($str[1])?$str[1]:$str[0]; 
     } 
     //filter the $key and $val here and do what you want 
    } 
} 
iterator($sweet); 
$str = implode("/", array_reverse($arrPush)); 
echo $str; 

運動/ Algemeen/techn.sp.ondgd/ondergoed達梅斯/運動BH

1

就像那個(沒有測試)

function namify($arr) { 
    foreach($arr as $cat) { 
     if(!empty($cat['parent']) && is_array($cat['parent'])) { 
      return $cat['name'].namify($cat['parent']); 
     } else { 
      return $cat['name']; 
     } 
    } 
} 

echo namify($categories);