PHP从变量构建数组


PHP build array from variables

所以我有一个可以分解的变量:

$values = explode ('|', $split);

这可以包含从1到10+的任意数量的值

我有另一个大数组,我们称之为$tree。我需要循环使用$values,同时基于$tree变量构建数组。

例如:

$newArray = $tree [$values [0]][$values [1]];

但这需要基于$values阵列中的元素数量来动态地完成。

有什么想法吗?

感谢

这就是您想要做的吗?

$newArray = array();
foreach($values as $key => $val)
{
    $newArray[] = $tree[$val][$values[$key + 1]];
}

您需要一个foreach循环,它可以遍历您拥有的每一个值,然后将它们放入$tree数组中,类似于:

$newArray = array();
foreach($values as $index => $value)
{
    $newArray[] = $tree[$value][$value[$index + 1]];
}

从$tree创建一个临时数组,并迭代获得每个索引的值:

$result = $tree;
foreach ($values as $val){
    $result = $result[$val];
}

通过这种方式,您可以深入$tree的一个级别,每个值都以$values提供,$result在您到达的点保存存储在$tree中的值。例如,如果您有一个导航树,$values将是当前导航位置的"breadcrumb",$result是从该点向下的剩余树。

我想这就是你想要的。它遍历$values的成对元素,将它们作为$tree的索引添加到$newArray

$newArray = array();
for ($i = 0; $i < count(values); $i += 2) {
    $newArray[] = $tree[$values[$i]][$values[$i+1]];
}
$values=array(0, 1, 3);
$tree=array("First", "Second", "Third", "Fourth");
$newarray=array();
for ($i=0; $i<count($values); $i++)
{
    $newarray[]=$tree[$values[$i]];
}
echo(implode($newarray,", "));

像这样的东西你在找什么?