次の多次元配列があるとします。
$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() 関数がネストされた再帰が含まれますが、「行き止まり」に陥ることがあり、1 つのブランチの最後までナビゲートします。