我有一个PHP stdClass对象。里面可以有很多字段,其中一些是数组。字段也可以是一个Object,它可以包含带有数组的字段。
想法是迭代对象并在找到数组时执行array_values操作。
可能的对象如下:
object(stdClass)#1 (3) {
["name"]=>
string(14) "I am an object"
["object"]=>
object(stdClass)#2 (3) {
["0"]=>
string(6) "item 1"
["1"]=>
string(6) "item 2"
["2"]=>
array(3) {
[0]=>
string(3) "3.1"
[1]=>
string(3) "3.2"
[2]=>
string(3) "3.3"
}
}
["list"]=>
array(3) {
[0]=>
string(6) "item 1"
[1]=>
string(6) "item 2"
[2]=>
string(6) "item 3"
}
}
关于如何递归遍历对象并将array_values应用于每个数组的任何想法?
答案 0 :(得分:1)
我终于使用了这个功能。它正是我想要的。
function rec_array_values(&$item){
if(is_object($item)){
foreach ($item as $key => &$value) {
$key = rec_array_values($value);
}
}else if(is_array($item)){
foreach ($item as $key => &$value) {
$key = rec_array_values($value);
}
$item = array_values($item);
}
}