我一直在尝试将字段从mysql_fetch_array(urlencoded)转换为urldecode,然后再转换为JSON(json_encode)
这是我正在使用的不起作用的内容:输出仍然是 urlencode
$query = "SELECT * FROM table WHERE tableId=$tableId";
$result = mysql_fetch_array(mysql_query($query));
foreach($result as $value) {
$value = urldecode($value);
}
$jsonOut = array();
$jsonOut[] = $result;
echo (json_encode($jsonOut));
有什么想法吗?
是的....! 您不会使用函数返回的值更新$result
。 $value
需要通过引用传递。
foreach($result as &$value) {
$value = urldecode($value);
}
或
foreach($result as $i => $value) {
$result[$i] = urldecode($value);
}
当你这样做时...
foreach($result as $value) {
$value = urldecode($value);
}
函数的结果在foreach
迭代时丢失。 您正在尝试更新存储在$result
中的每个值,但这并没有发生。
- 另请注意,代码仅从查询中获取一行。 我不确定这是否是设计使然。
尝试:
$query = "SELECT * FROM table WHERE tableId=$tableId";
$result = mysql_query($query);
$value = array();
while($row = mysql_fetch_array($result))
$value[] = urldecode($row);
}
$jsonOut = array();
$jsonOut[] = $result;
echo (json_encode($jsonOut));