php對像轉數組

smarty模板的foreach不支持對像,只支持數組。對於json格式的數據,只能先轉換爲數組後方可使用foreach。


轉換方法之一是直接使用 (array),如:

$array = (array)$obj;

經測試,此種方法只支持一層數據結構,對於$obj->obj1->obj2此類數據無法轉換


轉換方法之二是編寫遞歸函數轉換,如:

/**
 * 對象轉數組
 *
 * @param object $obj
 * @return array
 */
function object_to_array($obj)
{
    $_arr = is_object($obj) ? get_object_vars($obj) : $obj;
    foreach ($_arr as $key => $val)
    {
        $val = (is_array($val) || is_object($val)) ? object_to_array($val) : $val;
        $arr[$key] = $val;
    }
    return $arr;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章