生成嵌套数组

时间:2015-09-23 10:02:20

标签: php multidimensional-array

我写了一个方法来从一组键生成嵌套数组。

public static function generateSubArray(array $keys)
{
    foreach($keys as $key)
    {
        if(!isset($subArray[$key])){
            $subArray[$key] = [];
        }
        $subArray = $subArray[$key];
    }
    return $subArray;
}

用法:

$ret = Utils::generateSubArray(['name', 'id', 'fix']);
var_dump($ret);

预期:

$ret = [
         'name' => 
             [
                'id' => ['fix']
             ]
       ]

但是得到空数组。怎么了???

1 个答案:

答案 0 :(得分:1)

试试这个

public static function generateSubArray(array $keys)
{
    $subArray = [];
    $parent =& $subArray;

    foreach($keys as $key)
    {
        if(!isset($parent[$key])){
            $parent[$key] = [];
        }
        $parent =& $parent[$key];
    }
    return $subArray;
}