下面的代码只有像[“a”,“b”,“c”]这样的数组,但返回[Object,Object,Object]。结果我需要在ajax成功函数中使用嵌套的$ each循环。有没有更好的方法呢?
if($_GET['semValue'])
{
$sem_value = $_GET['semValue'];
try
{
$stmt = $dbConn->prepare("SELECT Semester FROM CourseInfo");
$semArray = array();
if ($stmt->execute())
{
while ($row = $stmt->fetch(PDO::FETCH_ASSOC))
{
$semArray[] = $row;
}
}
echo json_encode($semArray);
exit();
}
catch(PDOException $e)
{
echo 'Exception -> ';
var_dump($e->getMessage());
}
答案 0 :(得分:0)
您在主数组中插入整个row
,因此它将返回多维数组而不是字符串数组。
要获取字符串数组,请替换以下行。
while ($row = $stmt->fetch(PDO::FETCH_ASSOC))
{
$semArray[] = $row["Semester"];
}
说明:
$row
会是这样的,
$row= Array("semester"=>1);
$row= Array("semester"=>2);
// And so on
如果您按照当前的代码,那么您的最终数组将是这样的,
$semArray = Array ( [0]=> Array("semester"=>1), [1]=> Array("semester"=>2));
因此它变成了多维数组,这就是为什么我们使用$row["Semester"]
来使它成为字符串/整数值的单维数组。