PHP------陣列和物件相互轉化,stdClass Object轉array
陣列轉JSON
PHP json_encode() 用於對變數進行 JSON 編碼,該函式如果執行成功返回 JSON 資料,否則返回 FALSE 。
JSON轉陣列
PHP json_decode() 函式用於對 JSON 格式的字串進行解碼,並轉換為 PHP 變數。
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
echo json_encode($arr);
結果: {
"a"
:
1
,
"b"
:
2
,
"c"
:
3
,
"d"
:
4
,
"e"
:
5
}
反之亦然。
第三方介面解析(stdClass Object轉array)
最近開發商城,使用到了物流的第三方API介面的JSON資料,往往單純通過json_decode方法解析獲得得數值一般並非陣列,
而是帶有stdClass Objec的物件字串,這時如果我們想獲取相應的PHP陣列時,需通過以下幾種方法來獲取。
//PHP stdClass Object轉array function object_array($array) { if(is_object($array)) { $array = (array)$array; } if(is_array($array)) { foreach($array as $key=>$value) { $array[$key] = object_array($value); } } return $array; }
因為json_decode()函式可以接受兩個引數:
當 $data= json_decode($object); //得到的是 object 上面資料型別。
當 $data= json_decode($object, ture); //得到的則是陣列。
$data= json_decode($json, ture);
本人使用的是第二種,簡單也方便,列印資料print_array($data);
這樣就和平常的陣列一樣了,也方便使用了,例:
echo $data['data'][0]['traces'][0]['desc'];//[上海市] [嘉定]的震徽電子已收件 電話:暫無