0

在转换为 JSON(json_encode)之前,我一直在尝试将字段从 mysql_fetch_array (即 urlencoded)转换为 urldecode

这是我正在使用但不起作用的内容:输出仍然是 urlencoded

$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));

有任何想法吗?

4

2 回答 2

1

是的....!您没有$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其中的每个值,但这并没有发生。

  • 另请注意,代码仅从您的查询中获取一行。我不确定这是否是设计使然。
于 2013-10-31T01:20:27.987 回答
0

尝试:

$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));
于 2013-10-31T01:22:15.093 回答