0

構造が次の場合:

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

次のコードは、最初のレイヤー (-child B) をループアウトできます。それらをすべてループアウトしたい場合は、どうすればよいですか?

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

親Aのすべての子のレイヤーが4番目の深さである場合、それらをループアウトする方法は? 親 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;
      }
    }
}
4

1 に答える 1

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;
    }
}
于 2013-03-10T20:27:43.090 に答える