PHP - 创建数组列表

时间:2016-03-08 16:04:51

标签: php arrays

我需要创建一个如下所示的数组:

Array (
    1 => Array(
        2 => Array (
            3 => Array ()
        )
    )
)

这个数组应该从数组生成,如下所示:

Array (
    1,
    2,
    3
)

我不确定如何用文字更好地描述这个,所以这就是为什么我给你看这个例子。 3个值仅用于此示例的目的,在实际脚本中,值的数量是变化的。谢谢你的任何建议。

解决,感谢标记为重复。如果有人和我有同样的问题,这里有解决方案。

function setArrayValue(&$array, $path, $value) {
    $temp = &$array;

    foreach($path as $key)
        $temp =& $temp[$key];

    $temp = $value;
}

$keys = Array(
    10,
    9,
    8,
    7,
    6,
    5,
    4,
    3,
    2,
    1
);

$keys   = array_reverse($keys);
$array  = Array();
$path   = Array();

foreach ($keys AS $i => $key) {
    $path[] = $key;

    if (array_key_exists(++$i, $keys))
        $value = Array(
            $keys[$i] => Array(),
        );
    else
        $value = Array();

    if ($i == 0) {
        $array[$key] = $value;
    } else {
        setArrayValue($array, $path, $value);
    }
}

0 个答案:

没有答案