php对像转数组

本文详细介绍了如何将JSON格式的数据转换为数组,以便在Smarty模板中使用foreach循环进行迭代处理。提供了两种方法:一种是直接使用(array)函数,另一种是通过递归函数实现更深层次的数据结构转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值