Php 给定一个对应于叶节点位置的值数组,我将如何访问该节点?
注:我不熟悉有关树结构的术语。请原谅由于我的无知而造成的任何疏忽 实例 给定这样的数组:Php 给定一个对应于叶节点位置的值数组,我将如何访问该节点?,php,arrays,multidimensional-array,tree,tree-nodes,Php,Arrays,Multidimensional Array,Tree,Tree Nodes,注:我不熟悉有关树结构的术语。请原谅由于我的无知而造成的任何疏忽 实例 给定这样的数组: Array ( [0] => 0 [1] => 2 [2] => 8 [3] => 9 ) 键为“9”的树节点位于$tree[2][8][9](0为根节点)。给定上述数组,我将如何在PHP中构造一个访问叶节点的语句 目标代码 /* 假设我得到了9美元的leafNodeID,我想存一些 数据($dataToSave)进入所述叶节点 */ $leafNo
Array
(
[0] => 0
[1] => 2
[2] => 8
[3] => 9
)
键为“9”的树节点位于$tree[2][8][9]
(0为根节点)。给定上述数组,我将如何在PHP中构造一个访问叶节点的语句
目标代码
/*
假设我得到了9美元的leafNodeID,我想存一些
数据($dataToSave)进入所述叶节点
*/
$leafNodeID=9;
$dataToSave=array(“name”=>“foobar”);
$tree_path=$this->findPathToRootNode($tree,$leafNodeID);//这将返回上面找到的数组。
${?????}=$dataToSave;// 做一个自我定位功能。这应该可以做到(未经测试)
$tree
是数据,$tree
是数组的路径,$depth
本身就说明了问题
使用
$leaf = getLeaf($tree,$targetleaf);
干杯,托普纳。在接下来的几天里,我将尝试一下,并向大家汇报。Hi-Topener-这个解决方案看起来不错(尽管由于某种原因,它在我的代码中并不完全有效)。然而,由于输入是安全的(从数据库中提取),我最终只使用了eval,并对其进行了大量的注释。:)
function getLeaf($tree, $targetleaf, $depth = 0){
if (isset($targetleaf[$depth+1])
return getLeaf($tree[$targetleaf[$depth]], $targetleaf, $depth + 1)
else
return $tree[$depth];
}
$leaf = getLeaf($tree,$targetleaf);