php 转换成json 函数,PHP 转换Array为Json数据函数

原文

函数如下:

function arrayToJson($arr) {

if(function_exists('json_encode')) return json_encode($arr); //Lastest versions of PHP already has this functionality.

$parts = array();

$is_list = false;

//Find out if the given array is a numerical array

$keys = array_keys($arr);

$max_length = count($arr)-1;

if(($keys[0] == 0) and ($keys[$max_length] == $max_length)) {//See if the first key is 0 and last key is length - 1

$is_list = true;

for($i=0; $i

if($i != $keys[$i]) { //A key fails at position check.

$is_list = false; //It is an associative array.

break;

}

}

}

foreach($arr as $key=>$value) {

if(is_array($value)) { //Custom handling for arrays

if($is_list) $parts[] = array2json($value); /* :RECURSION: */

else $parts[] = '"' . $key . '":' . array2json($value); /* :RECURSION: */

} else {

$str = '';

if(!$is_list) $str = '"' . $key . '":';

//Custom handling for multiple data types

if(is_numeric($value)) $str .= $value; //Numbers

elseif($value === false) $str .= 'false'; //The booleans

elseif($value === true) $str .= 'true';

else $str .= '"' . addslashes($value) . '"'; //All other things

// :TODO: Is there any more datatype we should be in the lookout for? (Object?)

$parts[] = $str;

}

}

$json = implode(',',$parts);

if($is_list) return '[' . $json . ']';//Return numerical JSON

return '{' . $json . '}';//Return associative JSON

}

使用方法:

$dataArr = array(

'aaa' => array(

1,2,3

),

'bbb' => array(

'b_1' => "222",

'b_2' => "555",

'b_3' => array(

'a' => 1,

'b' => 2,

'c' => 3

)

)

);

echo arrayToJson($dataArr);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值