PHP将数组转换为对象

时间:2012-04-19 20:45:40

标签: php casting

  

可能重复:
  Casing an Array with Numeric Keys as an Object

我从数组到对象进行了一次转换,我很困惑:

$arr = range(1,3);
$obj = (object) $arr;
var_dump($obj)

object(stdClass)#2 (5) {
  [0]=>
    int(1)
  [1]=>
    int(2)
  [2]=>
    int(3)
}

问题是:在这种情况下如何访问对象属性? $obj->0会导致语法错误。

3 个答案:

答案 0 :(得分:4)

除非转换回数组,否则无法访问这些对象属性。期。如果由于某种原因必须这样做,请将数组键设置为其他内容。

答案 1 :(得分:2)

在这种情况下,我唯一能想到的就是使用这样的foreach来访问属性:

foreach($obj as $key => $value)
   var_dump("$key => $value");

但当然这不会解决基本问题。

答案 2 :(得分:1)

似乎ArrayObject类可以访问属性

$a = new ArrayObject($obj);
echo $a[0];