json_encode数组和其他数据

时间:2012-02-15 14:28:07

标签: php mysql json

我毫不费力地将MySQL数据输出到数组,然后在json中进行编码。

我想要了解的是如何将此json输出添加到其他非动态数据中。

if (mysql_num_rows($result) > 0) {
    while($obj = mysql_fetch_object($result)) {
        $arr[] = $obj;      
    }
    echo $_GET['callback'].'('.json_encode($arr).')';
}else{

}

我需要的例子是添加类似

的内容
"firstnumber":"0"
"secondnumber":"10"

有没有办法成功地将这种形式的数据与结果数组一起添加并对其进行编码?

2 个答案:

答案 0 :(得分:1)

您可以混合/匹配PHP数组。使用数据库提取循环构建的数组将被赋予数字键(0,1,2,...),然后您可以自己添加“firstnumber”和“secondnumber”键。

然而,这会使循环迭代变得有点棘手,因为你必须区分密钥类型。但是,没有什么可以阻止你做嵌套结构:

$data = array();
while(...) {
   $data['stuff_from_db'][] = $obj;
}
$data['other_stuff']['first_number'] = 0;
$data['other_stuff']['second_number'] = 10;

允许您将数据库结果和“其他内容”并行保存在数组的单独分支中。

答案 1 :(得分:1)

我会用我的其他数据创建一个数组,然后将它追加到最后:

  if (mysql_num_rows($result) > 0) {

   while($obj = mysql_fetch_object($result)) {
       $arr[] = $obj;      
   }

   // Add other data
   $otherData = Array('firstnumber'=>0, 'secondnumber'=>10);

   // Append other data to end of array
   $arr[] = $otherData;

   echo $_GET['callback'].'('.json_encode($arr).')';

}else{

}