现在的位置: 首页 > 综合 > 正文

php对像转数组

2012年01月22日 ⁄ 综合 ⁄ 共 438字 ⁄ 字号 评论关闭

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;
}

抱歉!评论已关闭.