最近在用ThinkPHP開發一個京東服務市場的應用,然而京東服務市場接口返回的數據是個對象數組。然而需要一個個屬性取出來放到數組裡面然後再利用ThinkPHP的addAll或者add方法寫入數據庫。然而每次返回的字段有幾十個,每次這麼拼接都要崩潰了。果然還是那句話,當你感到無法忍受的時候你就會想辦法改變。於是想了下,如果有個函數傳個對象數組進去可以自動轉成普通數組就好了。因而萬能的互聯網搜索又來了。百度了一通。。。果然有前輩已經處理過了,在此記錄一下。
復制代碼 代碼如下:
/**
* [std_class_object_to_array 將對象轉成數組]
* @param [stdclass] $stdclassobject [對象]
* @return [array] [數組]
*/
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;
}
就這樣,對象數組就優雅地轉成了普通的數組。動動腦子,代碼量下來了,功能也優雅地就實現了。一舉兩得,何樂而不為呢?