使用PHP将对象转换为数组的不同方法

使用PHP将对象转换为数组的不同方法,php,arrays,object,Php,Arrays,Object,使用此代码时: $array=(array)$yourObject $yourObject的属性转换为数组索引,但如何转换为一个数组,这意味着,$yourObject是$array的一个索引,而Iecho$array[0]用于通过对象访问 另一种提问方式,请参见此示例代码: <?php $var1 = (string) 'a text'; $var2 = (array) array('foo', 'bar'); $var3 = (object) array("foo" => 1,

使用此代码时:

$array=(array)$yourObject

$yourObject
的属性转换为数组索引,但如何转换为一个数组,这意味着,
$yourObject
$array
的一个索引,而I
echo$array[0]
用于通过对象访问

另一种提问方式,请参见此示例代码:

<?php

$var1 = (string) 'a text';
$var2 = (array) array('foo', 'bar');
$var3 = (object) array("foo" => 1, "bar" => 2);

//It's OK.
foreach((array)$var1 as $v) {
    echo $v."<br>";
}

echo "<hr>";

//It's OK.
foreach((array)$var2 as $v) {
    echo $v."<br>";
}

echo "<hr>";

//It's NOT OK. I want through $var3 in output as an array with one index!
foreach((array)$var3 as $v) {
    echo $v."<br>";
}

echo "<hr>";

?>
$var2的输出:

array
  0 => string 'foo' (length=3)
  1 => string 'bar' (length=3)
$var3的输出:

array
  0 => 
    object(stdClass)[1]
      public 'foo' => int 1
      public 'bar' => int 2

最后,我确定foreach返回当前结果时不会出错。

您的意思是将对象包装在数组中

$array = array($yourObject);
如mc10所述,您可以使用:


你能澄清你的问题吗?这有点难理解。
//这不好。我想通过$var3作为一个带有一个索引的数组输出这意味着什么?我再次编辑了我的问题。或者,在PHP5.4(?)中,您可以使用
$array=[$yourobject]。不在PHP中,$array=(array)$yourObject;是corrent@popnoodles什么<代码>$array=(array)$yourObject是完全不同的。他问的是模棱两可的,尽管你已经读了第十遍了,但你可能是对的。不,在你认为他想要的东西可能是对的之后。
$array = array($yourObject);
$array = [$yourObject];