duanjing4623 2015-05-27 12:28
浏览 116
已采纳

转置返回的JSON对象(PHP,mySQL)

The object I get back from my sql query is a single row with about 50 columns. It returns an object like this:

[
    {
        "State": "Alabama",
        "State Abbrev": "AL",
        "County": "Madison",
        "FIPS": "01089",
        "msa": "3440",
        "msaname": "HUNTSVILLE, AL",
        "cbsa": "26620",
        "cbsaname": "Huntsville, AL",
        "Population": "346892",
        "Length of Life Rank": "4",
        "Quality of Life Rank": "6",
    }
]

What I need is a format like this:

[
{ “column”: “State”, “value”: “Alabama” },
 { “column”: “State Abbrev”, “value”: “AL” },
 ...
 ]

How can I transpose the result to match my requirements? I'm getting the data like so:

$sql4 = "SELECT d.* FROM `mytable` s 
INNER JOIN `secondtable` c ON 
c.`zip_code` = s.`zip_code` 
INNER JOIN `anothertable` d ON 
d.`fips` = c.`fips` 
WHERE s.`ID` = '{$prov_number1}' group by `ID`"; 
$result4 = $dbh->query($sql4)->fetchAll(PDO::FETCH_ASSOC);
$data['demo_info'] = $result4;
header('Content-type: application/json');
echo json_encode($data);

EDIT: some good answers, but I think my results are coming back wrong because my data is stuctured differently than what I have above. If I var_dump $result4, the structure is more like this:

array(1) {
  [0]=>
  array(93) {
    ["State"]=>
    string(7) "Alabama"
    ["State Abbrev"]=>
    string(2) "AL"
    ["County"]=>
    string(7) "Madison"
    ["FIPS"]=>
    string(5) "01089"
    ["msa"]=>
    string(4) "3440"
    ["msaname"]=>
    string(14) "HUNTSVILLE, AL"
    ["cbsa"]=>
    string(5) "26620"
}}

I'm thinking this might change the answers, as I've tried a few and get nothing in the "column" and all my data crammed into the "values".

  • 写回答

4条回答 默认 最新

  • douchang8219 2015-05-27 12:35
    关注
    $finalresult = array();
    $icount = 0 ;
    foreach($result4 as $row) {
         foreach ( $row as $key => $val ) {
    
            $finalresult[$icount]["column"] = $key;
            $finalresult[$icount]["value"] = $val;
            $icount++;
         }
    }   
    $data['demo_info'] = $finalresult;
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型