php - 仅在函数内部循环迭代一次

标签 php mysql arrays

我有以下函数,它应该在数组中返回所有锦标赛和相应的回合。

当我使用 print_r 调用主体内的函数时,我仅返回一个锦标赛和回合,但是有多个锦标赛和回合就像循环仅在一次迭代后退出

function getTournaments(){
    global $db;
        $sql = "SELECT tournament, weekNum 
                FROM schedule
                GROUP BY tournament";
        $stmnt = $db->prepare($sql);
        $stmnt->execute();
        $tournaments = $stmnt->fetchAll();

        $data = array();
        foreach($tournaments as $tournament){
                $data = array('tournament' => $tournament['tournament'], 'round' => $tournament['weekNum']);

        }//foreach
        return $data;
}//function

print_r(getTournaments());

数据库转储

这里可以看到db上运行对应的mysql语句

enter image description here

我的输出/问题

正如您在下图中看到的在执行 print_r 时,我只返回了一场锦标赛和一轮,为什么我没有返回所有锦标赛和一轮函数数组内部?我在这里遗漏了什么吗?

enter image description here

最佳答案

您在要创建新数组(多维)的循环中重写$data:

$data[] = array('tournament' => $tournament['tournament'], 'round' => $tournament['weekNum']);

关于php - 仅在函数内部循环迭代一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42429792/

相关文章:

php - 我如何将今天的日期设置为html中的默认日期

PHP 无法找到文件,即使它存在

PHP:可以使用数组作为 sprintf 函数的参数部分吗?如果是这样 - 怎么样?

mysql - 自学问题mysql,如何使用2个表创建第3个表,该表使用原始2个表的信息

c# - 在#mysql中使用外键

javascript - 使用 for 循环对数组进行排序失败

php - mysql 在一个查询上进行多个连接

php - BeginTransaction 无法在 PHP mysql 中工作

命令行参数,打印列和行

c - 将指针的结构数组作为函数参数传递?