php数组转化json格式数据的自定义函数

2015/05/2017:40:54php数组转化json格式数据的自定义函数已关闭评论 1,082

使用PHP与Mysql进行数据提取并传递给前台模板显示,Json的数据格式方便了我们处理数据解析显示在页面。下面记录一些PHP数组与Json的转化函数。
自定义一个转化为Json格式的函数,把一个数组变成用,(逗号)连接起来的字符串 (注意:应考虑到多维数组的情况,并以返回值的形式返回)


$arr1 = array (
 "fruits" => array("a" => "orange", "b" => "banana", "c" => "apple"),
 "numbers" => array(1, 2, 3, 4, 5, 6),
 "holes" => array("first", 5 => "second", "third")
 );
$arr2 = array(1, 2, 3, 4, 5, 6=>'fanglor');
 function arr2str ($arr){
 static $res_arr = array();
 if (is_array ($arr)){
 foreach ($arr as $key => $val ){
 if (is_array($val)){
 arr2str ($val);
 }else{
 $res_arr[] = $val;
  }
 }
 }elseif (is_string ($arr)){
 $res_arr[] = $arr;
 }
 return implode(',',$res_arr);
}
调用:
// $str = arr2str ($arr1);
// $str = arr2str ($arr2);
// print_r($str);

附上一个将数组对象转化成JSON字符串的函数。


/*
*函数功能:将数组对象转化成JSON字符串
*传入参数:数组对象
*返回值:json字符串
*限制:数组深度<=2
*/
function toJSON($arr){
 $str = "{";
 foreach ($arr as $key => $value) {
 if(is_array($value)){
 $str .= "\"".$key."\":"."{";
 foreach ($value as $key1 => $value1) {
 $str .= "\"".$key1."\":"."\"".$value1."\",";
 }
 $str = rtrim($str,',');
 $str .= "},";
 }else{
 $str .= "\"".$key."\":"."\"".$value."\",";
  }
 }
 $str = rtrim($str,','); //去掉右边的逗号
 $str .= "}";
 return $str;
}

调用:
在公司进行微信开发,圣诞偷苹果项目时候这样使用(代码片段):


$sql="select id,nickname,headimg,apple_num from leju_apple_user ORDER BY apple_num DESC limit 50";
 $res=mysql_query($sql);
 $jason=array();
 $k = 1;
 while($row=mysql_fetch_array($res,MYSQL_ASSOC)){
 $row['rank'] = $k;
 array_push($jason, $row);
 $k++;
 }
 echo toJSON($jason);
然后在前台使用JS解析PHP传递过来的字符串,提取数据,显示在页面上。
  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin