2012-03-22 80 views
0

嘿傢伙我昨天有一個想法。你能幫我解決這個問題嗎? 下面是代碼使用哪裏在foreach循環在php

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

問題是????? – 2012-03-22 06:02:55

+0

需要減少迭代以提高性能。 – 2012-03-22 12:01:19

回答

1

你可以改變陣列結構的方式,以便它在形式:

$subCategoriesDetail[$cat_id] = array(); 

$teamsDetail[$sub_cat_id] = array(); 

那麼你可以使用:

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

如果你想,那麼你必須要等待由PHP這樣做不切實際的時間。

你可以通過sql連接來完成。以表格的內部連接並獲得結果。這可以通過查詢。這就是爲什麼加入to increase performance。如果你沒有加入它們,你可以編寫你的代碼。我們一定會努力提高你的系統的性能。

1

這將只是語法糖,PHP將不得不做與你一樣的if,它不能做一些魔術。

有些人喜歡這樣的語言功能,有些人不喜歡,我自己也不願意,因爲我認爲語言必須做更多功能的同一件事,學習語言就越困難。

+0

+1「我認爲語言做同樣事情的功能越多,學習語言就越困難。」 – Kamal 2012-03-22 08:01:55