2016-10-04 67 views
-5

这段代码的主要问题是,它提供了额外的花括号..为什么我的JSON数据输出包含额外的花括号

<?php 
header('Content-Type: json'); 
include('config.php'); 

    for($i=1990;$i<=2016;$i++){ 
     $sum=0; 
     $data1=array(); 
     $result=mysql_query("select * from crimedetails where crime_year=$i"); 
     while($row=mysql_fetch_array($result)) 
      { 
      $sum+=$row['crime_mudered']; 
      $data['crime_mudered']=$sum; 
      $data['crime_year']=$row['crime_year']; 
      } 
      $data3[]=$data; 
    }   
    array_push($data1,$data3); 
    print json_encode($data1); 
?> 

输出数据:

+4

你正在得到你所要求的。在一个数组('$ data1')内的数组($ data3')内的一堆查询结果行('$ data')。 –

+0

没有使用array_push ..它工作正常..感谢 –

回答

0

只需使用array_merge()代替array_push()

+0

只使用array_merge()而不是array_push()当我使用array_merge()它隐藏所有数据 –

0

当您将json_encode()应用于关联数组时,括号会变成大括号。这是因为它将该数组编码为JavaScript Object Notation(JSON)。因此,在JavaScript中,关联数组是对象,其属性为。并且,要使用JavaScript中的属性定义对象,请使用花括号{})。

相关问题