使用哪里在foreach循环在php

问题描述:

嘿家伙我昨天有一个想法。你能帮我解决这个问题吗? 下面是代码使用哪里在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

你可以改变阵列结构的方式,以便它在形式:

$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; 
     } 
    } 
} 

如果你想,那么你必须要等待由PHP这样做不切实际的时间。

你可以通过sql连接来完成。以表格的内部连接并获得结果。这可以通过查询。这就是为什么加入to increase performance。如果你没有加入它们,你可以编写你的代码。我们一定会努力提高你的系统的性能。

这将只是语法糖,PHP将不得不做与你一样的if,它不能做一些魔术。

有些人喜欢这样的语言功能,有些人不喜欢,我自己也不愿意,因为我认为语言必须做更多功能的同一件事,学习语言就越困难。

+0

+1“我认为语言做同样事情的功能越多,学习语言就越困难。” – Kamal 2012-03-22 08:01:55