我有一个多维数组:
$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/