给定以下多维数组:
$family = array(
"grandfather",
"grandmother",
"father" => array(
"parents" => array(
"grandfather",
"grandmother"
)
),
"mother" => array(
"parents" => array(
"grandfather",
"grandmother"
)
),
"son" => array(
"parents" => array(
"father",
"mother"
)
),
"daughter" => array(
"parents" => array(
"father",
"mother"
)
),
);
您可以想象扩展此数组以包括曾祖父母、曾孙子女等。
我确信这是一种常见且有据可查的数据结构,但我不是计算机科学专业的,我不知道如何描述或命名这种特殊类型的字典。
给定我们正在寻找的“子”节点和“祖先”节点的名称,是否有内置于 PHP 中的函数可以可靠地向上导航此树?
例如:
getAncestor($array, $child, $ancestor);
我已经尝试过了,它通常涉及嵌套在自身内部的 getAncestor() 函数的递归,但有时会遇到“死胡同”,它会一直导航到一个分支的末尾。