我想感谢你阅读这个问题。
我的问题是。我有这个PHP代码与SQL查询:
mysql_connect($mysql_server, $mysql_login, $mysql_password);
mysql_select_db($mysql_database);
$req = "SELECT name, elements "
."FROM lwzax_zoo_item "
."WHERE application_id = '2' AND elements LIKE '%".$_REQUEST['term']."%' ";
$query = mysql_query($req);
while($row = mysql_fetch_array($query))
{
$results[] = array('label' => $row['name'], 'desc' => $row['elements']);
}
$json = json_encode($results);
echo $json;
输出是:
[
{
"label":"0146T",
"desc":" {\n\t\"cec36dd6-ffde-494d-b25c-8e58bff84e22\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"Ccta W\\/Wo Dye\"\n\t\t}\n\t}\n}"
},
{
"label":"64653",
"desc":" {\n\t\"cec36dd6-ffde-494d-b25c-8e58bff84e22\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"Chemodenervation Eccrine Glands Oth Area Per Day\"\n\t\t}\n\t}\n}"
}
]
但我只需要标签数据和价值数据......所以看起来应该是这样的:
[
{
"label":"0146T",
"desc":"Ccta W\\/Wo Dye"
},
{
"label":"64653",
"desc":"Chemodenervation Eccrine Glands Oth Area Per Day"
}
]
你能帮帮我吗?
非常感谢您的帮助
更新:删除$ b = json_decode($ row ['desc'],true);因为它没有被使用,只是我尝试成功的一个垃圾。
答案 0 :(得分:0)
您正在解码JSON并将其分配给$b
,但您没有对该变量做任何事情。使用:
$results[] = array('label' => $row['name'],
'desc' => $b['cec36dd6-ffde-494d-b25c-8e58bff84e22'][0]['value']);
此外,您需要为json_decode
提供第二个参数,因此它将返回一个关联数组而不是一个对象。
$b = json_decode($row['elements'], true);
答案 1 :(得分:0)
好的,首先,首先在你的循环外面初始化你的数组。
while($row = mysql_fetch_array($query))
{
$b = json_decode($row['elements']);
$results[] = array('label' => $row['name'], 'desc' => $row['elements']);
}
然后你应该这样做:
$results = array();
while($row = mysql_fetch_array($query))
{
$b = json_decode($row['elements']);
array_push($results, array('label' => $row['name'], 'desc' => json_decode($row['elements'], true));
}
最后
$json = json_encode($results);
echo $json;
看看是否有帮助。