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

基本的に私がやりたいのは、配列からグループIDとチーム名をフェッチし、それらを配列に格納してから、配列$in_groupID$in_teamNameさらに深く調べて、特定のチームの各ゲームを一度に1ゲームずつ取得することです。私がつかむゲーム。クエリ自体は問題ではありません。この紛らわしいループを私が望む方法で繰り返し、実行のパラメータとして値を保存しています。

どんな助けでも大歓迎です。私が言ったように、私はデータベースクエリの実行には関心がなく、それを簡単に修正して後で追加することができます。実行のためにループからパラメータを格納することに頭を悩ませる必要があります。

助けてくれてありがとう。

4

2 に答える 2

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 に答える
1

nameチーム配列を反復処理すると、および配列にアクセスできるようになりgamesます。各チームのキーを知っているので、各チームを繰り返す必要はありません。繰り返す必要があるのは、各チームのすべてのゲームです。

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 に答える