function getTree ($data, $pId)
{
$tree = ""; // -------------------1
foreach ($data as $k = > $v)
{
if ($v ["cate_ParentId"] = = $pId)
{/ / Father finds son
$v["cate_ParentId"] = getTree($data, $v["cate_Id"]); //---------------------2
$tree[] = $v; //------------------------3
//unset($data[$k]);
}
}
return $tree; // -----------------4
}
$tree = getTree ($data, 0);
question:
1. This is the recursive method I saw on the Internet. I now have a question: define $tree =""in the first step, which means that every time the function getTree () is called, it will be re-assigned to $tree, so why is it that in the end, return $tree is still a complete tree structure, and there is no lack of data?
2. For example, a node: oneself-> son-> grandson. According to the above function execution process, [oneself-> son] this process, the function always runs between steps 1 and 2. Wait until the [grandson] node is already the last node, so step 4 will be executed, so shouldn"t the data in $tree be empty?
Please explain to me that I am very dizzy now.