繁体   English   中英

在函数内部仅循环一次

[英]Loop only iterating once inside function

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

当我使用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());

数据库转储

在这里,您可以看到在数据库上运行的相应mysql语句

在此处输入图片说明

我的输出/问题

如您在下面的图片中看到的那样在执行print_r我只会得到一个锦标赛和回合为什么不能在函数数组中返回所有锦标赛和回合? 我在这里想念什么吗?

在此处输入图片说明

您在要创建新数组(多维)的循环中过度写入$data

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

您应该将$ data用作数组:)使用此

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

代替

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM