我有以下数组:
Array
(
[1] => 0
[2] => 1
[3] => 2
[4] => 3
[5] => 1
[6] => 0
)
此数组的键是唯一的,并且值显示键的父级。就像 1 和 6 的父级是 0,2 的父级是 1,因为 3 是 2....
我正在编写一个递归函数,它将找到给定孩子 ID 的父母。(4->3->2->1->0) 这是我的代码:但它不返回任何结果
$child_node = 4;
function find_parents($child_node){
global $tree, $mark;
$mark[$child_node] = TRUE;
$ans = array(); //blank array for result
foreach($tree[$child_node]->children as $child)
if(!$mark[$child]){
$ans[$child]=$child;
find_parents($ans[$child],$child);
}
}
这是我创建树的方式
class node {
var $children;
var $parents;
public function __construct(){
$this->children = array();
$this->parents = array();
}
}
$tree = array();
foreach ($a as $q => $p){
if(!isset($tree[$p]))
$tree[$p] = new node;
if(!isset($tree[$q]))
$tree[$q] = new node;
$mark[$p]=FALSE;
$mark[$q]=FALSE;
array_push($tree[$p]->children,$q);
}