首页 >后端开发 >php教程 >如何高效地将 PHP stdClass 对象转换为数组?

如何高效地将 PHP stdClass 对象转换为数组?

DDD
DDD原创
2024-11-20 12:10:10304浏览

How to Efficiently Convert a PHP stdClass Object to an Array?

在 PHP 中将 stdClass 转换为数组

问题:

我需要将 PHP stdClass 对象转换为数组。但是,尝试使用(数组)转换、json_decode(true) 和 json_decode() 会导致空数组。如何有效地执行此转换?

答案:

惰性单行方法

为了稍微降低性能,您可以利用 JSON简洁地实现这种转换的方法:

$array = json_decode(json_encode($booking), true);

该方法首先将对象编码为 JSON 字符串,然后将其解码回数组。

将 stdClass 转换为 Array

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

此方法返回一个索引数组,而不保留属性名称。

将 stdClass 转换为关联数组

$array = json_decode(json_encode($booking), true);

通过将 true 作为第二个参数传递给 json_decode,您可以将对象转换为关联数组,保留属性名称。

自定义函数(递归)

如果性能至关重要,您可以实现自定义递归函数以将对象转换为数组:

function object_to_array($object) {
  if (is_object($object)) {
    $object = get_object_vars($object);
  }

  if (is_array($object)) {
    return array_map(__FUNCTION__, $object);
  } else {
    return $object;
  }
}

$array = object_to_array($booking);

以上是如何高效地将 PHP stdClass 对象转换为数组?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn