Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 给定一个对应于叶节点位置的值数组,我将如何访问该节点?_Php_Arrays_Multidimensional Array_Tree_Tree Nodes - Fatal编程技术网

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);