强制json_decode结果转换为数组
众所周知json数据是有数组或者对象或者数组和对对象组成的,如果直接用json_decode来解析这种数据就会出现一个“难以”预料的结果——对解析的结果访问的时候你可能根本不知道是个对象或者是个数组,造成程序的种种错误,很头疼,确实!!
如果你也为此感到迷茫的话,我想你跟PHP iask的站长一样几乎都没有看过相关部分的手册——我痛恨这样的人,也痛恨自己。其实这个json_decode函数是有第二个参数的,如果你把这个参数设置为true,你就可以得到一个数组,一个真正的数组哦。
看代码:
1 2 3 4 | $a['d'][]=1; $a['d'][]=2; echo $str=json_encode(array($a)); var_dump(json_decode($str)); |
执行结果是:
1 2 3 4 5 6 7 8 9 10 11 12 13 | array(1) { [0]=> object(stdClass)#1 (1) { ["d"]=> array(2) { [0]=> int(1) [1]=> int(2) } } } |
看到了吧这是一个数组里面放置一个对象;
我们强制json_decode结果转换为数组吧——把第四行加上参数
1 | var_dump(json_decode($str,true)); |
其结果是:
1 2 3 4 5 6 7 8 9 10 11 12 | array(1) { [0]=> array(1) { ["d"]=> array(2) { [0]=> int(1) [1]=> int(2) } } } |
对比着看吧,废话就不说了!

最近评论