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

时间:2022-09-24 09:37:51

自己写了个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; 
}