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 オブジェクトを追跡する方法がわかりません。あなたの考えを聞くのが大好きです。前もって感謝します。