繁体   English   中英

更改JSON格式的php

[英]Change JSON format php

我有这个php代码,我需要更改JSON格式,然后从mysql数据库中获取数据:

// Retrieve data from database 
    $sql="SELECT nombre FROM deudores ORDER BY fecha ASC LIMIT 10";
    $result=mysqli_query($con, $sql);

    $emparray = array();
    // Start looping rows in mysql database.
    while($rows=mysqli_fetch_assoc($result)){
        $emparray[] = $rows;
    // close while loop 
    }
    //print_r($emparray);
    //echo json_encode($emparray);
    $output = array(
   'c2array' => true,
   'size' => array(
       0 => count($emparray),
       1 => 1,
       2 => 1
   ),
   'data' => array()
    );

    $x = 0;
    foreach ($emparray as $value) {
   $output['data'][$x] = array();
   $output['data'][$x][0] = array();
   $output['data'][$x][0][0] = $value;
   $x++;
    }

    echo json_encode($output);

该代码打印此JSON:

{"c2array":true,"size":[7,1,1],"data":[[[{"nombre":"test"}]],[[{"nombre":"Oscar"}]],[[{"nombre":"Oscar"}]],[[{"nombre":"test"}]],[[{"nombre":"test"}]],[[{"nombre":"oscar"}]],[[{"nombre":"Oscar"}]]]}

但我需要JSON看起来像这样:

{"c2array":true,"size":[7,1,1],"data":[[[test]],[[Oscar]],[[Oscar]],[[test]],[[test]],[[oscar]],[[Oscar]]]}

我怎样才能做到这一点?

提前致谢!

使用mysql_fetch_row()代替mysql_fetch_assoc

while($rows=mysqli_fetch_row($result)){
    $emparray[] = $rows;
// close while loop 
}

只需将$emparray设置为$output['data'] 无需额外的工作

$output['data'] = $emparray;

这应该使输出如下所示:

{"c2array":true,"size":[7,1,1],"data":[["test"],["Oscar"],["Oscar"],["test"],["test"],["oscar"],["Oscar"]]}  

暂无
暂无

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

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