2013-05-07 2 views
0

У меня есть многомерный массив. Он может быть увеличен до уровня N. Я хочу получить только имя. Имя от ребенка до родителя. Например мне нужен вывод, как это имяимя извлечения из многомерных массивов многомерных массивов

=> "Спорт/Algemeen/techn.sp.ondgd/ondergoed ДАСТ/Спорт ЬНЫ"

. Уровень может быть увеличен до 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

+0

См. Я могу извлечь данные с помощью цикла foreach. Но я не могу предсказать уровни. Должен быть какой-то простой способ добиться этого. Поэтому, если кто-то поможет мне, это будет действительно ценно. – Palanikumar

+0

@Palanikumar, по крайней мере, вам нужно идти через 'foreach'! – powtac

ответ

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 ДАМ/Спорт ЬН

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); 
Смежные вопросы