如何将数组转换为PHP中的对象?

我如何将这样的数组转换为对象?

    [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'的价值 - 大量消除。 Morover如果转换失败,则字符串get的返回值为NULL


您可以简单地使用类型转换将数组转换为对象。

// *convert array to object* Array([id]=> 321313[username]=>shahbaz)
$object = (object) $array_name;

//now it is converted to object and you can access it.
echo $object->username;

这里有三种方法:

  • 假一个真实的对象:

    class convert
    {
        public $varible;
    
        public function __construct($array)
        {
            $this = $array;
        }
    
        public static function toObject($array)
        {
            $array = new convert($array);
            return $array;
        }
    }
    
  • 通过将数组转换为对象将数组转换为对象:

    $array = array(
        // ...
    );
    $object = (object) $array;
    
  • 手动将数组转换为对象:

    $object = object;
    foreach ($arr as $key => $value) {
        $object->{$key} = $value;
    }
    
  • 链接地址: http://www.djcxy.com/p/23643.html

    上一篇: How to convert an array to object in PHP?

    下一篇: Difference between object and class in Scala