繁体   English   中英

生成嵌套数组

[英]Generate nested 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']
             ]
       ]

但是作为空数组。 怎么了???

试试这个

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM