繁体   English   中英

PHP Json需要帮助吗?

[英]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));

上面的PHP代码的输出:

 [
  {
   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的WHEREIN

您需要将数据结构转换为关联数组 ,其中当前存储在code中的值将是键,而total存储的值将是value。

如果您发布生成当前JSON对象的代码,我将能够为您提供更好的帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM