php - 如何将多维数组转换为PHP中的对象?

标签 php object multidimensional-array

我有一个多维数组:

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

女巫看起来像这样:

[_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
                    )

            )

我想将它转换成一个对象并保留键名。

有什么想法吗?

谢谢

编辑:$obj = (object)$image_path; 似乎不起作用。我需要一种不同的方式来遍历数组并创建一个对象

最佳答案

一个快速的方法是:

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

说明

json_encode($array) 会将整个多维数组转换为JSON字符串。 (php.net/json_encode)

json_decode($string) 会将 JSON 字符串转换为 stdClass 对象。如果您将 TRUE 作为第二个参数传递给 json_decode,您将返回一个关联数组。 (php.net/json_decode)

我不认为此处的性能与递归遍历数组并转换所有内容相比非常明显,尽管我希望看到一些基准测试。它有效,而且不会消失。

关于php - 如何将多维数组转换为PHP中的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9169892/

相关文章:

php - 相关子查询在 phpMyAdmin 中有效,但在 PHP 脚本中超时

javascript - 面向对象的 Javascript 在嵌入式数组中创建格式错误的数据

javascript - 比较两个包含对象的数组,包括其他对象、数组等

javascript - 在javascript递归函数中增加一个参数

java - 如何将数据插入二维多维数组?

php - 用于组合数据的 SQL 查询

php - 使用 preg_replace 删除特定的 html 标签而不删除内容

php - 制作名称数组 php

php - 根据搜索字符串出现次数对数组进行排序 php

c++ - 对整数的多维 vector 进行排序?