2012-03-22 5 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

질문은 ????? –

+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