【发布时间】:2015-11-13 23:45:39
【问题描述】:
我想知道 PHP 中是否有 内置 方法将多维对象转换 到数组?
问题是当对一个对象应用常规转换时,只有第一个维度会受到影响,所有其他维度都会提醒。
注意:我对仅投射感兴趣!
例子:
$a = new stdClass();
$a->b = 'qwe';
$a->c = new stdClass();
$a->c->d = 'asd';
var_dump((array)$a); // echoes:
array(2) {
["b"]=>
string(3) "qwe"
["c"]=>
object(stdClass)#2 (1) {
["d"]=>
string(3) "asd"
}
}
如您所见,只有第一个维度受到影响,那么如何投射多维对象?
【问题讨论】:
-
我不太明白。您的代码和输出似乎正确。您到底期望它做什么?
-
$a->c 仍然是一个对象。我希望它是数组。
-
我不认为你可以做到这一点,至少在
var_dump或print_r下是这样。您可以构建一个foreach来呼应您的风格,并在找到作为对象的属性时强制进行数组转换。 -
各位,请仔细阅读问题。我问是否有内置方式。无需提供递归答案。它不是内置的。
标签: php arrays object multidimensional-array casting