drxrgundk062317205 2012-02-06 17:35
浏览 172
已采纳

如何在php中将多维数组转换为对象?

i have a multidimensional array:

$image_path = array('sm'=>$sm,'lg'=>$lg,'secondary'=>$sec_image);

witch looks like this:

[_media_path:protected] => Array
            (
                [main_thumb] => http://example.com/e4150.jpg
                [main_large] => http://example.com/e4150.jpg
                [secondary] => Array
                    (
                        [0] => http://example.com/e4150.jpg
                        [1] => http://example.com/e4150.jpg
                        [2] => http://example.com/e9243.jpg
                        [3] => http://example.com/e9244.jpg
                    )

            )

and i would like to convert it into an object and retain the key names.

Any ideas?

Thanks

edit: $obj = (object)$image_path; doesn't seem to work. i need a different way of looping through the array and creating a object

  • 写回答

2条回答 默认 最新

  • duancai9010 2012-08-07 13:17
    关注

    A quick way to do this is:

    $obj = json_decode(json_encode($array));
    

    Explanation

    json_encode($array) will convert the entire multi-dimensional array to a JSON string. (php.net/json_encode)

    json_decode($string) will convert the JSON string to a stdClass object. If you pass in TRUE as a second argument to json_decode, you'll get an associative array back. (php.net/json_decode)

    I don't think the performance here vs recursively going through the array and converting everything is very noticeable, although I'd like to see some benchmarks of this. It works, and it's not going to go away.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部