2015-12-30 2 views
1

У меня есть следующий массив.Подготовить дерево в php

Array 
(
[a] => Array 
    (
     [d] => Array 
      (
       [f] => Array 
        (
        ) 

       [g] => Array 
        (
         [h] => Array 
          (
          ) 

         [i] => Array 
          (
          ) 

        ) 

       [j] => Array 
        (
        ) 

      ) 

     [e] => Array 
      (
      ) 

    ) 

[b] => Array 
    (
    ) 

[c] => Array 
    (
    ) 

) 

Я пробовал с кодом ниже, но не получал требуемый выход.

str($treeArr); 

function str($arr){ 
    foreach($arr as $key=>$value){ 
     if(!empty($value)){ 
      echo $key.">"; 
      str($value); 
     } 
     else{ 
      echo $key."<br>"; 
     } 
    } 
} 

Мне нужен следующий выход.

a>d>f 
a>d>g>h 
a>d>g>i 
a>d>j 
a>e 
b 
c 
+0

По вашему желаемому выводу первой последовательность должна быть 'а> d> f', вы не думаете? –

+0

Да Я его отредактировал –

ответ

1

Привет, ребята, это то, что вы хотите?

$a=array('a'=>array('d'=>array('f'=>array(), 
           'g'=>array('h'=>array(), 
              'i'=>array()), 
           'j'=>array()), 
        'e'=>array()), 
     'b'=>array(), 
     'c'=>array() 
);                              
str($a); 
function str($arr){ 
    static $temp=array(); 
    foreach($arr as $k=>$v){ 
     $temp[]=$k; 
     if(!empty($v)){ 
     str($v); 
     }else{ 
     $str=implode(">",$temp); 
     echo $str."\n"; 
     } 
     array_pop($temp); 
    } 
} 

выход:

a>d>f 
a>d>g>h 
a>d>g>i 
a>d>j 
a>e 
b 
c 
+0

Большое вам спасибо @sis –

+0

Добро пожаловать @Dipesh Shihora – sis

Смежные вопросы