0

我有以下多维数组:

   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_groupIDand$in_teamName中,然后更深入地遍历数组并一次抓取该特定团队的每个游戏 - 对每个游戏执行数据库上的查询我抢的游戏。查询本身不是问题,它以我想要的方式迭代这个令人困惑的循环并将值存储为执行参数。

任何帮助将不胜感激。正如我所说,我不关心执行数据库查询之类的,我可以轻松地修复它并稍后添加它,我只需要考虑存储循环中的参数以执行。

非常感谢您的帮助。

4

2 回答 2

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
    }
}
于 2012-07-28T08:06:40.273 回答
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

        }
于 2012-07-28T08:12:18.243 回答