2011-10-18 22 views
0

私は今、私がやりたいものを私の配列$カテゴリにPHPで多次元配列を反復するには?

stdClass Object 
(
    [37] => Array 
     (
      [term_id] => 37 
      [name] => Files 
      [parent] => 0 
      [38] => Array 
       (
        [term_id] => 38 
        [name] => Downloads 
        [parent] => 37 
       ) 

     ) 

    [29] => Array 
     (
      [term_id] => 29 
      [name] => Articles 
      [parent] => 0 
      [36] => Array 
       (
        [term_id] => 36 
        [name] => General 
        [parent] => 29 
       ) 

      [35] => Array 
       (
        [term_id] => 35 
        [name] => WordPress 
        [parent] => 29 
       ) 

      [34] => Array 
       (
        [term_id] => 34 
        [name] => Php, Sql 
        [parent] => 29 
       ) 

     ) 

    [1] => Array 
     (
      [term_id] => 1 
      [name] => Uncategorized 
      [parent] => 0 
     ) 

) 

をそのデータ構造を持っているが、そのインデントと次のような形式でデータを印刷します。

Files 
    Downloads 
Articles 
    General 
    WordPress 
    Php, Sql 
Uncategorized 

私はそのコード

$categories = get_array_content(); // Return the above data 

print_category_tree($categories); 

function print_category_tree(&$c) 
{ 
    foreach($c as $cat) 
    { 
     ?> 
     <label> 
      <input type="checkbox" value="<?php echo $cat['term_id']; ?>" /> <?php echo $cat['name']; ?> 
     </label> 
     <br /> 
     <?php 

     foreach($cat as $categ) 
     { 
      if(is_array($categ)) 
      { 
       print_category_tree($categ); 
      } 
     } 
    } 
} 

を使用する以上の結果をachiveするには、私は何かがそれと間違っていることを知っているが、私は何を推測することはできません。誰かが多次元アレイの反復で私を助けてくれますか?

+0

注意。上記の例では、2次元の配列を持っていますが、それはユーザーが好きなだけ多くの次元にすることができます。 2つの次元は標準ではありません。 –

+1

なぜあなたは何かが間違っていることを知っていますか? – str

+1

コード*をここに掲載してください。 – deceze

答えて

0

次の2つのparamsで関数を呼び出す:

print_category_tree($categ, $forum_id); 

しかし、あなたの関数は一つだけのparam取ります

function print_category_tree(&$c) 

をそして、あなたが機能で&を使用しています。あなたはそれを使わずにテストしたいかもしれません。

function print_category_tree($c) 
+0

私は単純化された見た目のための通常のコード。私は問題のRIDを取得するために必要なコードの部分だけを残しました –

+0

新しいコードを検討してください –