发布日期:2018-03-26
如何在PHP中将数组转换为对象?+ 查看更多
如何在PHP中将数组转换为对象?
+ 查看更多
发布日期:2018-02-24 17:59
分类:PHP
浏览次数:84
[128] => Array ( [status] => Figure A. Facebook's horizontal scrollbars showing up on a 1024x768 screen resolution. ) [129] => Array ( [status] => The other day at work, I had some spare time ) )
回答
在最简单的情况下,用这种方式将数组转换为一个对象可能就足够了:
$object = (object) $array;
另一种方法是将标准类实例化为变量,并在重新分配值的同时循环访问数组:
$object = new stdClass(); foreach ($array as $key => $value) { $object->$key = $value; }正如Edson Medina指出的,一个真正简洁的解决方案是使用内置的json_函数:
$object = json_decode(json_encode($array), FALSE);这也(递归)将所有子数组转换为对象,这可能是或不是你想要的。但是,它的性能是循环方法的性能的2-3倍。
注意!(感谢Ultra的评论):
不同环境下的json_decode以不同的方式转换UTF-8数据。原本的值为'240.00',我最终得到的转换后的值为'240',这是灾难性的错误。此外,如果转换失败,字符串get的返回值为NULL。
不同环境下的json_decode以不同的方式转换UTF-8数据。原本的值为'240.00',我最终得到的转换后的值为'240',这是灾难性的错误。此外,如果转换失败,字符串get的返回值为NULL。