PHP:如何将数组转换为 StdClass 对象?

2024-01-10

有没有 PHP 函数可以自动执行此操作?

if (is_array($array)) {
    $obj = new StdClass();
    foreach ($array as $key => $val){
        $obj->$key = $val;
    }
    $array = $obj;
}

为什么不直接投射呢?

$myObj = (object) array("name" => "Jonathan");
print $myObj->name; // Jonathan

如果是多维的,Richard Castera 提供了以下解决方案his blog http://www.richardcastera.com/2009/07/06/php-convert-array-to-object-with-stdclass/:

function arrayToObject($array) {
  if(!is_array($array)) {
    return $array;
  }
  $object = new stdClass();
    if (is_array($array) && count($array) > 0) {
      foreach ($array as $name=>$value) {
        $name = strtolower(trim($name));
          if (!empty($name)) {
            $object->$name = arrayToObject($value);
          }
      }
      return $object; 
    } else {
      return FALSE;
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP:如何将数组转换为 StdClass 对象? 的相关文章

随机推荐