How to convert an array to object in PHP?(如何在 PHP 中将数组转换为对象?)
问题描述
如何将这样的数组转换为对象?
How can I convert an array like this to an object?
[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"
)
推荐答案
在最简单的情况下,将数组强制转换"为对象可能就足够了:
In the simplest case, it's probably sufficient to "cast" the array as an object:
$object = (object) $array;
另一种选择是将标准类实例化为变量,并在重新分配值时循环遍历数组:
Another option would be to instantiate a standard class as a variable, and loop through your array while re-assigning the values:
$object = new stdClass();
foreach ($array as $key => $value)
{
$object->$key = $value;
}
正如 Edson Medina 所指出的,一个真正干净的解决方案是使用内置的 json_代码>函数:
As Edson Medina pointed out, a really clean solution is to use the built-in json_
functions:
$object = json_decode(json_encode($array), FALSE);
这也(递归地)将您的所有子数组转换为您可能想要也可能不想要的对象.不幸的是,它比循环方法有 2-3 倍的性能损失.
This also (recursively) converts all of your sub arrays into objects, which you may or may not want. Unfortunately it has a 2-3x performance hit over the looping approach.
警告!(感谢 Ultra 的评论):
Warning! (thanks to Ultra for the comment):
json_decode 在不同的环境下以不同的方式转换 UTF-8 数据.我最终在本地获得了240.00"的价值,在生产上获得了240"的价值——巨大的灾难.Morover 如果转换失败,则字符串获取返回为 NULL
json_decode on different enviroments converts UTF-8 data in different ways. I end up getting on of values '240.00' locally and '240' on production - massive dissaster. Morover if conversion fails string get's returned as NULL
这篇关于如何在 PHP 中将数组转换为对象?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何在 PHP 中将数组转换为对象?
基础教程推荐
- 在多维数组中查找最大值 2021-01-01
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01
- 超薄框架REST服务两次获得输出 2022-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- 如何在 PHP 中的请求之间持久化对象 2022-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01