【问题标题】:PHP : how to convert object to array using loop [duplicate]PHP:如何使用循环将对象转换为数组
【发布时间】:2017-11-15 15:20:18
【问题描述】:

( [0] => 标准类对象 ( [名称] => 福特 [模型] => 数组 ( [0] => 嘉年华 [1] => 焦点 [2] => 野马 )

    )

[1] => stdClass Object
    (
        [name] => BMW
        [models] => Array
            (
                [0] => 320
                [1] => X3
                [2] => X5
            )

    )

[2] => stdClass Object
    (
        [name] => Fiat
        [models] => Array
            (
                [0] => 500
                [1] => Panda
            )

    )

)

【问题讨论】:

  • 你想用它做什么?你想要什么对如何解析它有很大的影响。您是在询问如何遍历每个项目吗?
  • 平均转换为数组(array) ?

标签: php


【解决方案1】:

是的,我们可以使用 JSON 函数编码为 JSON,然后解码回数组。但是,这不包括私有成员和受保护成员。

$array = json_decode(json_encode($object), true);

或者,以下函数将从对象转换为包含私有成员和受保护成员的数组:

function objectToArray ($object) {
    if(!is_object($object) && !is_array($object))
        return $object;

    return array_map('objectToArray', (array) $object);
}

【讨论】:

    【解决方案2】:

    最简单的方法是对您的对象进行 JSON 编码,然后将其解码回一个数组:

    $array = json_decode(json_encode($object), True);
    

    或者,如果您愿意,也可以手动遍历对象:

    foreach ($object as $value) {
        $array[] = $value->name;
    }
    

    试试吧!

    【讨论】:

    • 你试过了吗?
    猜你喜欢
    • 2020-02-25
    • 1970-01-01
    • 2017-04-30
    • 1970-01-01
    • 2015-12-10
    • 2019-02-27
    • 1970-01-01
    • 1970-01-01
    • 2019-09-28
    相关资源
    最近更新 更多