首页 > 高级编程 > 强制json_decode结果转换为数组

强制json_decode结果转换为数组

2009年12月4日

众所周知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)
    }
  }
}

对比着看吧,废话就不说了!

战地音乐 高级编程 ,

延伸阅读:

  1. 妙用PHP函数array_diff
  2. array_map函数解析
  3. 小心get_defined_functions
  4. php数字补零的两种方法
  5. 关于get_magic_quotes_gpc()函数
  1. 本文目前尚无任何评论.