代码之家  ›  专栏  ›  技术社区  ›  Timothy Coetzee

PHP在foreach中显示多维数组的结果

  •  0
  • Timothy Coetzee  · 技术社区  · 8 年前

    对于更有经验的程序员来说,这应该是一个非常简单的问题。

    我正在开发一个基本的“pickem应用程序”,它允许用户预测谁可以让用户投票决定他们认为谁会赢得一场体育比赛。很简单。

    我编写了以下函数来显示每个匹配的统计信息。一、 E该函数返回每个团队获得的投票数。

    正在执行 print_r() 在函数上,它工作正常并返回正确的结果。结果以包含的多维数组的形式返回。 gameID , team , number_of_votes

    我的代码

    $sql='SELECT gameID, team, COUNT(*) AS number_of_picks
              FROM picks
              WHERE picks.tournament = :tournament AND picks.weekNum = :weekNum 
              GROUP BY gameID, team
              ORDER BY gameID, team';
        $stmnt = $db->prepare($sql);
        $stmnt->bindValue(':tournament', $tournament);
        $stmnt->bindValue(':weekNum', $week);
        $stmnt->execute();
        if ($stmnt->rowCount() > 0) {
            $result = array();
            foreach ($stmnt->fetchAll() as $row) {
                $result[$row['gameID']][] = $row;
            }
            return $result;
            }
        return false;
    }
    

    打印函数返回数据

    ![enter image description here

    我的问题

    我的问题是显示/回显foreach循环中的数据。 I have searched on SO and most answers points towards a simple foreach()

    $picks = $calcStats('Tournament', Round);
    foreach($picks as $pick){
    echo $pick['gameID']; //gameID
    echo $pick['team']; //Which Team Will Win
    echo $pick['number_of_votes'] //How many votes did each team get
    }
    

    我的问题是,在尝试回显上面的变量时,我一直在获取空值。我对循环进行了多次调整,得到了相同的结果。

    我错过了什么?感谢您的任何帮助/建议。。。

    1 回复  |  直到 8 年前
        1
  •  1
  •   lazyCoder    8 年前

    如果您的 print_r() 数组是$picks,那么您的数组是多维数组,您需要再嵌套一个foreach(),如下所示:

    <?php
        $picks = $calcStats('Tournament', Round);
        foreach($picks as $keyArr){
            foreach($keyArr as $pick)
                echo $pick['gameID']; //gameID
                echo $pick['team']; //Which Team Will Win
                echo $pick['number_of_picks'] //it should be this according to your print_r data
            }
        }