[英]PHP Json Help need?
我需要转换以下结果。 我使用PHP生成了这个JSON数组,但是现在我需要将相同的结果放入一个大括号中。 以下是我的用于生成JSON的PHP代码。
$arr = array();
#If no data was returned, check for any SQL errors
if ($res == false)
{
echo 'Query not Executed : '. die(print_r(sqlsrv_errors(), TRUE));
}
else
{
while($obj = sqlsrv_fetch_array($res, SQLSRV_FETCH_ASSOC))
{
$arr[] = array(
'code' => array_search($obj['name'], $countries_iso),
'total' => $obj['Total']
);
}
}
header("Content-type: application/json");
#Output the JSON data
print (json_encode($arr));
[
{
code: "AF",
total: 1
},
{
code: "DZ",
total: 1
},
{
code: "AS",
total: 2
}
]
{
"AF":1
"DZ": 1,
"AS": 2
}
我猜你想要$arr[array_search($obj['name'], $countries_iso)] = $obj['Total'];
您的错误是,您每次在原始数组中添加内容时都声明一个新数组。 这样,您可以分配正确的方法:)
试试这个代码:
$arr = array();
#If no data was returned, check for any SQL errors
if ($res == false)
{
echo 'Query not Executed : '. die(print_r(sqlsrv_errors(), TRUE));
}
else
{
while($obj = sqlsrv_fetch_array($res, SQLSRV_FETCH_ASSOC))
{
$arr[array_search($obj['name'], $countries_iso)] = $obj['Total'];
}
}
header("Content-type: application/json");
#Output the JSON data
//$json = json_encode($arr);
$json = json_encode($arr);
只要这样做:
$arr[array_search($obj['name'], $countries_iso)] = $obj['Total'];
但是array_search($obj['name'], $countries_iso)
如果您将查询限制为仅返回WHERE name IN (list of $countries_iso)
行WHERE name IN (list of $countries_iso)
array_search($obj['name'], $countries_iso)
则可以删除整个array_search($obj['name'], $countries_iso)
WHERE name IN (list of $countries_iso)
。 查找SQL Server的WHERE
和IN
。
您需要将数据结构转换为关联数组 ,其中当前存储在code
中的值将是键,而total
存储的值将是value。
如果您发布生成当前JSON对象的代码,我将能够为您提供更好的帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.