PHP数据集构建JSON格式及新数组的方法

  自己写了个PHP结果集转换成JSON格式的函数,可以直接调用:

  

复制代码 代码如下:

  function RecordToJson($recordset)

  {

  $jstr='[';

  while($rs = $recordset->Fetch())

  {

  //$nick = iconv("GBK",'utf-8',$rs['nick']);/*转换为utf-8编码*/

  //TODO:遍历结果集

  $arr_keys=array_keys($rs);

  $jstr=$jstr.'{';

  for($i=0;$i<count($arr_keys);$i+=2)

  {

  //数据库编码为gbk,需要转换编码

  //TODO;iconv("GBK",'utf-8',$rs['nick']);/*转换为utf-8编码*/

  $key=iconv("GBK",'utf-8',$arr_keys[$i]);//$arr_keys[$i];

  $value=iconv("GBK",'utf-8',$rs[$arr_keys[$i]]);//$rs[$arr_keys[$i]];

  $jstr=$jstr.'"'.$key.'":"'.$value.'",';

  }

  $jstr=substr($jstr,0,strlen($jstr)-1);

  $jstr=$jstr.'},';

  }

  $jstr=substr($jstr,0,strlen($jstr)-1);

  $jstr=$jstr.']';

  return $jstr;

  }

  PHP默认的结果集数组有数字索引,下面函数可以去除数字索引,只保留字段索引:

  

复制代码 代码如下:

  function RebuilderRecord($recordset)

  {

  $row=0;

  while($rs = $recordset->Fetch())

  {

  //TODO:遍历结果集

  $arr_keys=array_keys($rs);

  for($i=0;$i<count($arr_keys);$i+=2)

  {

  $newrs[$row][$arr_keys[$i]]=$rs[$arr_keys[$i]];

  }

  $row++;

  }

  return $newrs;

  }