Суммарные значения в многомерном массиве - PullRequest
3 голосов
/ 22 декабря 2010

Я экспериментирую с массивами в PHP и настраиваю фальшивую среду, в которой запись "команды" хранится в массивах.

$t1 = array (
        "basicInfo" => array (
            "The Sineps",
            "December 25, 2010",
            "lemonpole"
        ),
        "overallRecord" => array (
            0,
            0,
            0,
            0
        ),
        "overallSeasons" => array (
            "season1.cs" => array (0, 0, 0),
            "season2.cs" => array (0, 0, 0)
        ),
        "matches" => array (
            "season1.cs" => array (
                "week1" => array ("12", "3", "1"),
                "week2" => array ("8", "8" ,"0"),
                "week3" => array ("8", "8" ,"0")
            ),
            "season2.cs" => array (
                "week1" => array ("9", "2", "5"),
                "week2" => array ("12", "2" ,"2")
            )
        )
);

Я пытаюсь добиться добавления всех выигрывает , проигрыш и тянет от недели каждого сезона к соответствующей неделе.Так, например, сумма всех недель в $ t1 ["matchs]] [" season1.cs "] будет добавлена ​​к $ t1 [" totalSeasons "] [" season1.cs«] .Результат ушел бы:

"overallSeasons" => array (
    "season1.cs" => array (28, 19, 1),
    "season2.cs" => array (21, 4, 7)
),

Я пытался решить это самостоятельно в течение последнего часа, и все, что я получил, это немного больше знаний о for-loops и foreach-loops : o ... поэтому я думаю, что теперь у меня есть основы, такие как использование foreach loop и т. д .;однако, я все еще новичок в этом, так что терпите меня!Я могу заставить цикл указывать на ключ $ t1 ["match"] и проходить каждый сезон, но не могу понять, как добавить все побед , убыток и ничья , для каждой отдельной недели.На данный момент я только ищу ответы относительно общей суммы сезонов, так как я могу работать оттуда, как только я выясню, как этого добиться.Любая помощь будет высоко ценится, но, пожалуйста, постарайтесь сделать ее проще для меня ... или, соответственно, прокомментируйте код!

Спасибо!

Ответы [ 2 ]

7 голосов
/ 22 декабря 2010

Попробуйте это:

foreach($t1['matches'] as $season => $season_array) {
        foreach($season_array as $week => $week_array) {
                for($i=0;$i<3;$i++) {
                        $t1['overallSeasons'][$season][$i] += $week_array[$i];
                }
        }
}

Посмотреть

2 голосов
/ 22 декабря 2010

Это должно сделать то, что вы пытаетесь сделать, хотя не проверял это.

foreach ($t1['matches'] as $key=>$value){
   $wins = 0;
   $losses = 0;
   $draws = 0;
   foreach($value as $record){
      $wins   += $record[0];
      $losses += $record[1];
      $draws  += $record[2];
   }

   $t1['overallSeasons'][$key] = array($wins, $losses, $draws);
}
...