转换php多维关联数组到json

时间:2015-08-03 01:35:46

标签: php mysql arrays json multidimensional-array

我有一个来自mysql表的多维关联数组,如下所示:

$i = 0;
$data = array();
while($row = $result->fetch_array(MYSQLI_ASSOC)) {
$arr = array();
$arr['id'] = $i;
$arr['code'] = $row['code'];
$arr['name'] = $row['name'];
$data[$i] = $arr;
$i++;
}

我会通过这个脚本将这些数组转换为json

var data  = <?php echo json_encode($data, JSON_PRETTY_PRINT) ?>;

但是没有回应,所以我尝试使用这个脚本

var data  = <?php echo json_encode($data) ?>;

这两个脚本都没有给出正确的结果

所以我尝试了以下脚本的其他方法,以便生成一个字符串变量,进一步将其转换为json

$i = 0;
$data = '[';
while($row = $result->fetch_array(MYSQLI_ASSOC)) {
if ($data != "[") {$data .= ",";}
$data .= '{"id":"'  . $i . '",';
$data .= '"code":"' . $row["code"] . '",';
$data .= '"name":"' . $row["name"] . '"}'; 
$i++;
}
$data .="]";

然后我用这些脚本改为json:

var data = <?php echo $data ?>;

结果仍然是错误的

对我有任何改进建议,谢谢

1 个答案:

答案 0 :(得分:0)

在返回json数组之前尝试提供标头。在编码json之前添加部分header('Content-Type: application/json');这样就可以将$ data作为JSON传递给浏览器

header('Content-Type: application/json');
echo json_encode(array('success' => TRUE, 'data' => $data));