我有一个 PHP 对象(或者它可能是一个数组),我想递归地遍历它的元素及其所有子元素,并找出哪个元素的子元素数量最多。
这就是我所做的。
var $max_element = array();
$this->find_longest_element_recursively($data, 0, array());
public function find_longest_element_recursively($object, $index, $max_array) {
if(!is_array((array) $object) || is_string($object) || is_numeric($object) || is_bool($object)) {
} else {
foreach($object as $key => $element) {
if(sizeof((array) $element) > sizeof((array) $this->max_array)) {
$this->max_array = $element;
}
$this->find_longest_element_recursively($element, $index+1, $max_array);
}
}
}
好的。所以这对我有用。但我只是不认为这是进行递归的正确方法。我想我可以摆脱 $max_element 变量并作为递归函数的结果返回实际的 max_element 对象,但不确定如何在递归期间跟踪 max_element 对象。喜欢听听你的想法。提前致谢。