2015-12-30 56 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