2012-07-28 5 views
0

의 변수에 값을 재 저장 I 다음 다차원 배열을 가지고혼란 foreach 루프 - 액세스하고 어레이

Array 
(
    [0] => Array 
     (
      [0] => Array 
       (
        [name] => team0 
        [games] => Array 
         (
          [0] => 3 
         ) 

       ) 

      [1] => Array 
       (
        [name] => team1 
        [games] => Array 
         (
          [0] => 2 
         ) 

       ) 

      [2] => Array 
       (
        [name] => team2 
        [games] => Array 
         (
          [0] => 1 
         ) 

       ) 

      [3] => Array 
       (
        [name] => team3 
        [games] => Array 
         (
          [0] => 0 
         ) 

       ) 

     ) 

I 개별 변수의 배열에서 배열 저장 내용을 통해 통과하려고 오전 이러한 변수를 매개 변수로 사용하여 데이터베이스에서 쿼리를 실행합니다. 이 다차원 배열로 작업하는 것이 매우 혼란스럽고 배열을 반복하는 방법을 이해하는 데 어려움을 겪고 있습니다. 그것이 그대로, 이것은 내 코드입니다 ...이 단계에서 foreach 루프에 간섭하는 것만으로도 내가해야 할 일을 어떻게 달성 할 수 있는지 더 잘 이해하려고 노력합니다. 모든 팀 이름 "Array"가 에코 된 후에이 코드에 문제가있는 것입니다.

foreach ($arrTeam as $array) 
      foreach ($array as $groupid => $group){ 
       $in_groupID = $groupid+1; 
       foreach ($group as $name) { 
        if (isset($name)) echo $name.'<br>'; 
       }     
      } 

기본적으로 내가 뭘 원하는 배열에서 그룹 ID와 teamname를 가져 $in_groupID$in_teamName에 저장 한 다음 배열에 깊은 통과 한 번에 특정 팀에 1 개 게임 각 게임을 잡아입니다 - 각 게임에 대해 데이터베이스에서 쿼리를 실행합니다. 쿼리 자체는 문제가 아니며,이 혼동을 반복하면서 원하는 값을 실행 매개 변수로 저장합니다.

모든 도움을 주시면 감사하겠습니다. 앞에서 말했듯이, 나는 데이터베이스 쿼리와 그 외의 것들을 실행하는 것에 관심이 없다. 나는 그것을 쉽게 고칠 수 있고 나중에 추가 할 수있다. 단지 실행을위한 루프에서 매개 변수를 저장하는 것만으로도 충분하다.

도움을 주셔서 감사합니다.

+0

'그룹 ID'란 무엇입니까? 첫 번째 배열의 색인? –

+0

예, 제가 방금 약간의 실수를 저질렀습니다. 그것은 실제로 "팀원"이어야하지만, 스 니펫의 목적 상 이름은별로 중요하지 않습니다. – anditpainsme

+0

첫 번째 인덱스는 GroupID이고 두 번째 인덱스는 teamID입니다. 원래 게시물을 수정했습니다. 정말 끔찍한 실수 야! 혼란스러워서 죄송합니다. – anditpainsme

답변

1

스티븐, 다음은 어떨까요?

foreach ($someInitArr as $rootIndex => $arrTeam) 
     foreach ($arrTeam as $teamid => $team) { 

     $teamName = $team['name']; 
     $teamID = $teamid + 1; 

      foreach($team['games'] as $gameNumber => $gameValue) 
       // here yo can grab each game separately within the database already having $teamName and $teamID 

     } 
+0

위 코드는 PhpMyCoder에 의해 위와 ​​같은 오류가 발생했습니다. – anditpainsme

+0

@Stephen, 그것을 확인하십시오! –

+0

내 이전 댓글을 잊어 버리십시오. 당신의 도움에 환호! – anditpainsme

1

팀 배열을 반복 할 때 namegames 어레이에 액세스 할 수 있습니다. 각 팀의 키를 알고 있기 때문에 각 팀을 반복 할 필요가 없습니다. 반복을 위해 필요한 것은 각 팀의 모든 게임입니다.

foreach($teams as $teamId => $team) { 
    // team id is in $teamId 
    $teamName = $team['name']; 

    // Iterate through the games 
    foreach($team['games'] as $number) { 
     // The game number (or id, or whatever you call it) is in $number 
    } 
} 
+0

다음 코드에서 정의되지 않은 인덱스 알림을 받았습니다. 경고 : 다음 줄에서 foreach()에 잘못된 인수가 제공되었습니다. foreach ($ team [ 'games'] $ number) { – anditpainsme

+0

' print_r ($ team);'처음 foreach 내에? –

+0

내 원래 질문에 새로운 배열 구조를 참조하십시오, 그것을 업데이트했습니다. 저를 대신해서 정말 끔찍한 감시가 있었는데, 실제로 잘못된 print_r() 덤프를 붙여 넣었고 알아 차리지 못했습니다. – anditpainsme