如何将对象转换为数组?

如何将对象转换为数组?

<?php
   print_r($response->response->docs);?>

产出如下:

    Array (
    [0] => Object 
            (
                [_fields:private] => Array 
                                    (
                                        [id]=>9093 
                                        [name]=>zahir                                    ) 
            Object 
            ( 
                [_fields:private] => Array 
                                    (
                                        [id]=>9094 
                                        [name]=>hussain                                    )..
            ))

如何将此对象转换为数组?我想输出以下内容:

Array(
    [0]=>
    (
        [id]=>9093 
        [name]=>zahir    ) 
    [1]=>
    (
        [id]=>9094 
        [name]=>hussain    )...)

这个是可能的吗?


HUX布斯
浏览 902回答 3
3回答

白板的微信

你应该看看获取对象VAR,当您的属性声明为私有时,您应该在类中调用它并返回其结果。小心,对于像字符串这样的原始数据类型,它会工作得很好,但我不知道它如何处理嵌套对象。在你的情况下,你必须做一些类似的事情;<?php &nbsp;&nbsp;&nbsp;print_r(get_object_vars($response->response->docs));?>

慕码人8056858

小心:$array&nbsp;=&nbsp;(array)&nbsp;$object;浅层转换($Object->innerObject=newstdClass()是否仍然是一个对象,并使用json进行来回转换,但如果性能是问题,这不是一个好主意。如果您需要将所有对象转换为关联数组,那么这里有一种更好的方法(代码从哪里撕下来):function&nbsp;toArray($obj){ &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(is_object($obj))&nbsp;$obj&nbsp;=&nbsp;(array)$obj; &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(is_array($obj))&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$new&nbsp;=&nbsp;array(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach&nbsp;($obj&nbsp;as&nbsp;$key&nbsp;=>&nbsp;$val)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$new[$key]&nbsp;=&nbsp;toArray($val); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$new&nbsp;=&nbsp;$obj; &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$new;}
打开App,查看更多内容
随时随地看视频慕课网APP