我有以下函数,它应该在数组中返回所有锦标赛和相应的回合。
当我使用 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语句
我的输出/问题
正如您在下图中看到的在执行 print_r
时,我只返回了一场锦标赛和一轮,为什么我没有返回所有锦标赛和一轮函数数组内部?我在这里遗漏了什么吗?
最佳答案
您在要创建新数组(多维)的循环中重写$data
:
$data[] = array('tournament' => $tournament['tournament'], 'round' => $tournament['weekNum']);
关于php - 仅在函数内部循环迭代一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42429792/