2012-03-22 8 views
0

私は昨日アイデアを持っていました。これで私を助けてくれますか? は、ここでは、コードphpのforeachループでのコーディングを使用しています

foreach($categoriesDetail as $categories) 
{ 
    foreach($subCategoriesDetail as $subCategories) 
    { 
     if($categories->id == $subCategories->cat_id) 
     { 
      foreach($teamsDetail as $team) 
      { 
       if($subCategories->id == $team->sub_cat_id) 
       { 
        echo $team->name; 
       } 
      } 
     } 
    } 
} 

は意志が実行され、correcr結果を生み出すが、私は実行しないように、余分なiteratinosをお勧めしますされています。つまり

foreach($categoriesDetail as $categories) 
{ 
    foreach($subCategoriesDetail as $subCategories where $categories->id == $subCategories->cat_id) 
    { 
     foreach($teamsDetail as $team where $subCategories->id == $team->sub_cat_id) 
     { 
      echo $team->name; 
     } 
    } 
} 

で私は、これはPHPや他の言語では不可能です知っているが、私は、代替をしたいか、彼らはパフォーマンスを向上させるためにこれを追加することができ、将来にあってもよいです。

+2

質問は????? –

+0

パフォーマンスを向上させるために反復を減らす必要があります。 –

答えて

1

それは形でですので、あなたは配列が構成されている方法を変更できます。

$subCategoriesDetail[$cat_id] = array(); 

$teamsDetail[$sub_cat_id] = array(); 

は、あなたが使用する:あなたは、あなたが待つ必要がPHPでこれを行う場合

foreach($categoriesDetail as $categories) 
{ 
    foreach($subCategoriesDetail[$categories->id] as $subCategories) 
    { 
     foreach($teamsDetail[$subCategories->id] as $team) 
     { 
      echo $team->name; 
     } 
    } 
} 
0

非現実的な時間。

これは、SQL結合によって実行できます。テーブルの内部結合を取り、結果を得る。それは照会によって可能です。そのため、結合はto increase performanceとなります。あなたがそれらに参加しない場合は、コードを書くことができます。間違いなく、システムのパフォーマンスを向上させようとします。

1

これは文法的な砂糖だけであり、PHPはifで行ったのとまったく同じようにする必要があります。それはいくつかの魔法を行うことができません。

このような言語機能のようなものもあれば、他の言語機能と似ているものもあります。言語が同じ機能を備えていればするほど、言語を学ぶのが難しくなると思います。

+0

+1 "私は、言語が同じことをしなければならない機能が多くなればなるほど、言語を学ぶのが難しくなると思います。" – Kamal

関連する問題