2012-07-28 57 views
0

我有以下多維數組:混淆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 
         ) 

       ) 

     ) 

我試圖通過從在各個變量的陣列到陣列和存儲信息來遍歷使用這些變量作爲參數對數據庫執行查詢。我發現使用這個多維數組非常困惑,我正在努力理解如何正確地遍歷數組。事實上,這是我的代碼......在這個階段,更多的是我插手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>'; 
       }     
      } 

基本上就是我想要做的就是獲取數組中的一個groupId和teamname,將它們存儲在$in_groupID$in_teamName,然後遍歷深入陣列,並抓住每場比賽爲特定隊一場比賽在同一時間 - 在我抓取的每個遊戲的數據庫上執行查詢。查詢本身不是問題,它以我想要的方式遍歷這個令人困惑的循環,並將值存儲爲執行參數。

任何幫助將主要讚賞。正如我所說的,我並不關心執行數據庫查詢以及什麼,我可以很容易地解決這個問題,並在以後添加它,我只需要讓我的頭來存儲執行循環中的參數。

非常感謝您的幫助。

+0

「groupid」是什麼?第一個數組的索引? – 2012-07-28 07:58:29

+0

是的,雖然我剛剛意識到這是我犯的一個小錯誤。這實際上應該是「隊友」,但爲了片段的目的,這個名字並不重要,我想。 – anditpainsme 2012-07-28 08:01:49

+0

第一個索引是GroupID,第二個是teamID。我已經修復了我原來的帖子。多麼可怕的錯誤!對不起,有任何困惑。 – anditpainsme 2012-07-28 08:33:51

回答

1

Stephen,下一步呢?

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 2012-07-28 08:25:10

+0

@Stephen,看看吧! – 2012-07-28 08:36:24

+0

不知道我以前的評論。歡呼你的幫助! – anditpainsme 2012-07-28 08:49:00

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'] as $ number){ – anditpainsme 2012-07-28 08:22:09

+0

當您調用' print_r($ team);'在第一個foreach中? – 2012-07-28 08:27:21

+0

請參考我原來問題中的新陣列結構,我已經更新了它。我代表了一個可怕的監督,我實際上粘貼了錯誤的print_r()轉儲並沒有注意到。 – anditpainsme 2012-07-28 08:32:17