将多维数组从php作为数组而不是对象传递给js
将多维数组从php作为数组而不是对象传递给js
我正在建立一个存储问题结果的教育网站,非常感谢任何帮助。我在这个网站上进行了很多搜索,但没有找到这个具体问题。
我正在努力使用PHP将SQL数据传递给Javascript,以使其成为一个多维数组(没有键),而不是一个对象。
目前,我在JS中得到了这样一个对象
{"0":["y3","y2","y1","n5","y4","y6"],"1":["n5","n4","n3","y","n","y"], ...}
我真正需要的是一个数组
[["y3","y2","y1","n5","y4","y6"],["n5","n4","n3","y","n","y"]...]
这样我就可以在JS中执行其他功能(例如长度、查找索引号等)。
以下是我的PHP和JS的一部分。我使用了echo json_encode
,并尝试了许多不同的mysqli_fetch
变体,但无法解决。奇怪的是,对不同的SQL表进行类似的查询时,它可以按照我希望的方式工作(唯一的区别是它返回的是整数列表而不是字符串)。
// ... // 尝试执行预处理语句 if(mysqli_stmt_execute($stmt)) { $result = mysqli_stmt_get_result($stmt); if(mysqli_num_rows($result) > 0) { //获取结果行 while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { array_push($thisFact, $row["mark"]); //"mark"是表中的列名 } $progress[$x] = $thisFact; // 设置这个Fact的进度(一个最多有6个项的数组) } // 结束 if result > 0 } else { echo "Oops! 无法执行。" ; } } //结束循环 ?> var FactProgress = ; alert(FactProgress.length); for (var i = 0; i < FactProgress.length; i++) {
FactProgress.length
显示为未定义。然后,在我尝试使用长度时,它会出错。
非常感谢。