Php 函数数组\u push返回空数组
我试图将表中的行保存在数组中,但得到的是一个空数组Php 函数数组\u push返回空数组,php,Php,我试图将表中的行保存在数组中,但得到的是一个空数组 我的代码是: $a = array(); $b = array(); if ($result->num_rows > 0){ while ($row = $result->fetch_assoc()) { $b["id"] = $row["id"]; $b["title"] = $row["title"]; $b["description"] = $row["descri
我的代码是:
$a = array();
$b = array();
if ($result->num_rows > 0){
while ($row = $result->fetch_assoc()) {
$b["id"] = $row["id"];
$b["title"] = $row["title"];
$b["description"] = $row["description"];
$b["lat"] = $row["lat"];
$b["lng"] = $row["lng"];
$b["walkId"] = $row["walkId"];
echo json_encode($b);
array_push($a,$b);
}
echo json_encode($a);
}
使用echo-json\u编码($b)代码>我逐个看到结果,但数组a为空
编辑1
在Random的帮助下,使用echo print\r($a,true)代码>我得到以下截图:
我从其他表格中正确获取数据的屏幕截图是:
编辑2
json_编码有问题。我得到下面的答案
[{“id”:“55”,“标题”:“\u00ce\u203a\u00ce\u00bf\u00cf\u2026\u00ce\u00bb\u00ce\u00bf\u00cf\U026\u00ce\u00b4\u00ac\u00ce\u00b4\u00ce\u00b9\u00ce\u00ba\u00ce\u00b1”,“说明”:"\U0000B9\U0000中国政府军\UU0000中国政府军\U000000中国政府军\U0000B9\U0000中国政府军\U0000中国政府军\U0000中国政府军\U00中国政府军\U00中国政府军\U0000中国政府军\U000000中国政府军\U00000000中国政府军\U000000中国政府军\U00000000中国政府军\U0000中国政府军\U00中国政府\U00中国科学家\U00中国政府军\U00中国政府\U00中国科学家\U00中国科学家\U00中国政府\U00中国科学家\U00中国科学家\U00中国政府\U00中国科学家\U00中国科学家\U00中国政府\U00中国科学家\U00中国科学家\U00中国科学家\U00中国政府\U00中国政府\U00中国科学家\U00中国政府\U00中国科学家\U00中国科学家\U00中国科学家\U00中国科学家\U00中国科学家\u00b9\u00cf\u0192\u00cf\u201e\u00ce\u00b9\u00ce\u00ba\u00ce\u00ac\u00cf\u201e\u00ce\u00b7\u00cf\u201a\u00ce\u00b3\u00ce\u00b1\u00cf\u0192\u00cf\u00cf\U01E\u00cf\u0081\u00ce\u00bf\u00ce\u00bf\u00ce\u00bc\u00ce\u00af\u00af\u00ce\u00b1\u00cf\u00cf\U01A\u00cf\u00cf\U01E\u00ce\U007\u00cf\u00cf\U00CF4\U00CF4\u00ce\U00CF4\U00C\U00C\U00C\U00C\U00C\U00C\U00C\U00C\U00C\U00C\U00C\U00C\U00C\U00C\U\u00ce\u2018\u00ce\u00b3\u00ce\u00bf\u00cf\u0081\u00ce\u00ac\u00ce\u0153\u00ce\u00bf\u00ce\u00b4\u00ce\u00b9\u00ce\u00ac\u00ce\u00bd\u00ce\u00bf,“说明”:”u00中国\u00中国\u00ce\u00中国\u00中国\u00中国\u00中国\u00中国\u00中国\u00cf\u0081\u00中国\u00中国\u00中国\u00中国\u00中国\u00中国\u00中国\u00中国\u00中国\u00中国\u00中国\u00中国\u00cf\u00cf\u00cf\u00cf\u00cf\u0081\u0081\u0081\u00中国\u00中国\u00中国\u00中国\u00中国\u0081\u00中国\u00中国\u00中国\\u00中国\u0081\u00中国\u00中国\u00中国\\\u00中国\\\u00中国\u00中国\\u00中国\u00中国\u00中国\u00中国\\\u00中国\\u00中国\u00中国\u00中国\\\\\\\u00\ u00cf\u0081\u00ce\u00ac\u00cf\u201a。\u00cf\u201e\u00ce\u00b1 X\u00ce\u00b1\u00cf\u0081\u00ce\u00b1\u00ce\u00ba\u00cf\u201e\u00ce\u00b7\u00cf\u0081\u00ce\u00cf\u00cf\u0192\u00cf\u201e\u00ce\u00ba\u00ce\u00ac\u00cf\u201e\u00ce\u00b7\u00cf\u201a\u00ce,“lat”:“40.639”、“lng”:“22.460”、“Walk92”:我注意到的第一件事是3次出现的特殊的?
。问题一定来自这里。
尝试编辑包含特殊?
的3个描述,以便它不会再次出现在打印中。
这必须将array\u push
变成一个错误。
您也可以尝试用拉丁语对其进行编码以确保其安全。(请按照@deceze link了解该怎么做)您确定它正在进入循环中吗?$b
是否确实包含任何数据?为什么要让自己为难呢,只需使用$a[]=$row;
即使这样做有效,您也只能得到fetch_assoc()返回的最后一个值因为您一直在覆盖值。为什么不直接将$row压入$a?此代码有效…它可能来自其他地方?utf8\u encode
将拉丁语-1转换为UTF-8。屏幕截图中显示的字符显然不是拉丁语-1可编码字符,因此utf8\u encode
在这里没有任何用处。@deceze应该做什么e在本例中使用,所以?(我是法国人,所以我总是使用utf8来解决问题:))和@deceze我不相信这是重复的,因为主要的问题是关于数组推送的问题…数据库中有意外的字符…重复的是第二个问题,实际上是关于编码的问题…这里的array\u推送
没有实际问题,这只是编码的问题。