php object转成array,php object 转 array【转】

要在 Command line 讀取 JSON, 一時找不到可以直接讀取的 Library, 所以就先用 PHP 寫一個來頂.

物件轉換成陣列使用的函式

PHP 使用 json_decode 預設是會回傳物件, 但是物件拿來作 foreach 的處理有點麻煩, 所以需要 Object to Array 的轉換程式.

CLI 的 JSON Reader PHP 版程式

讀取 CLI 參數, 可用 fgets(STDIN); 或 fgets(fopen('php://stdin', 'r')); 來抓取.

// json_file content:

//   {"version":1.0,"url":"http://tw.yahoo.com"}

// Usage:

//   cat json_file | php read_json.php

$stdin = get_object_vars(json_decode(fgets(STDIN)));

foreach ($stdin as $k => $v) {

echo "$k = /"$v/"/n"; // print json_decode key => value.

}

?>

但是這個是 JSON 只有一層物件的狀況, 那多層物件的狀況, get_object_vars() 就不太夠用.

function std_class_object_to_array($stdclassobject)

{

$_array = is_object($stdclassobject) ? get_object_vars($stdclassobject) : $stdclassobject;

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

$value = (is_array($value) || is_object($value)) ? std_class_object_to_array($value) : $value;

$array[$key] = $value;

}

return $array;

}

// print_r(std_class_object_to_array(json_decode($json_str)));

?>

上述 PHP JSON Reader 的程式, 就只需要將 get_object_vars() 換成 std_class_object_to_array() 即可.

另外, 上述的程式看看就好, 不需要去用. XD

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值