2013-03-10 70 views
0

如果結構是:如何將它們循環出來?

parent A 
    -child B 
    - - child c 
    ---child d 
----child e 

以下代碼可循環從第一層(柴爾德B)。如果我想循環播放它們,我該怎麼做?

foreach ($childCatID as $kid) 
{ 
    $childCatName = $wpdb->get_row("SELECT name FROM $wpdb->terms WHERE term_id=$kid"); 
    echo $childCatName->name; 
} 

如果父A中的所有孩子的圖層都是第四深度,那麼如何將它們循環出來? 如果父A中所有孩子的層都不知道,是否有辦法將它們循環出來?

我試着用下面的代碼,但沒有將它們循環出來。

foreach ($childCatID as $kidone) 
    foreach ($kidone as $kidtwo){ 
    foreach ($kidtwo as $kidthree){ 
     foreach ($kidthree as $kid){ 
     $childCatName = $wpdb->get_row("SELECT name FROM $wpdb->terms WHERE term_id=$kid"); 
     echo $childCatName->name; 
     } 
    } 
} 

回答

0

你應該打包foreach循環成一個功能,並將其命名爲遞歸

function EchoNode($node) 
{ 
    if (is_array($node)) 
    { 
     foreach ($node as $kid) 
     { 
      if (is_array($kid)) 
      { 
       EchoNode($kid); 
      } 
      else 
      { 
       $childCatName = $wpdb->get_row("SELECT name FROM $wpdb->terms WHERE term_id=$kid"); 
       echo $childCatName->name; 
      } 
     } 
    } 
    else 
    { 
     $childCatName = $wpdb->get_row("SELECT name FROM $wpdb->terms WHERE term_id=$node"); 
     echo $childCatName->name; 
    } 
} 
+0

感謝你,當我運行代碼,使用$節點用$代替沒有任何output.i childCatID – down1337 2013-03-10 20:37:41

+0

修改我的代碼! – PGallagher 2013-03-10 20:53:58

相關問題