循环只在函数内部迭代一次
Loop only iterating once inside function
我有以下函数,它应该 return 所有 锦标赛和相应的轮次 在一个数组中。
当我使用 print_r
调用主体内部的函数时,我得到 只有一个 锦标赛和一轮 returned,但是 有多个锦标赛和轮次。 好像只循环了一次循环就退出了
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
、why 时只参加了一场锦标赛和一轮 returned我是否没有在函数数组中获取所有锦标赛和轮次 return?我在这里遗漏了什么吗?
你在要创建新数组(多维)的循环中改写 $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']);
我有以下函数,它应该 return 所有 锦标赛和相应的轮次 在一个数组中。
当我使用 print_r
调用主体内部的函数时,我得到 只有一个 锦标赛和一轮 returned,但是 有多个锦标赛和轮次。 好像只循环了一次循环就退出了
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
、why 时只参加了一场锦标赛和一轮 returned我是否没有在函数数组中获取所有锦标赛和轮次 return?我在这里遗漏了什么吗?
你在要创建新数组(多维)的循环中改写 $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']);