改变JSON格式php

时间:2015-12-29 01:21:51

标签: php arrays json

我有这个PHP代码,我需要更改JSON格式我从mysql db获取数据:

// 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]]]}

我怎么能做到这一点?

提前致谢!

1 个答案:

答案 0 :(得分:1)

使用mysql_fetch_row()代替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"]]}  

这应该使输出像这样:

var inputFiles = document.getElementsByTagName("input")[0];
inputFiles.onchange = function(){
  var promise = Promise.resolve();
  inputFiles.files.map( file => promise.then(()=> pFileReader(file)));
  promise.then(() => console.log('all done...'));
}

function pFileReader(file){
  return new Promise((resolve, reject) => {
    var fr = new FileReader();  
    fr.onload = resolve;  // CHANGE to whatever function you want which would eventually call resolve
    fr.readAsDataURL(file);
  });
}