Transform flat array into a hierarchical, multi-dimensional array

后端 未结 3 977
孤城傲影
孤城傲影 2021-01-18 19:11

I have a standard array with key-value pairs - and I want to use the keys to transform it into a multi-dimensional array. The difficulty seems to be that I need to loop recu

3条回答
  •  太阳男子
    2021-01-18 19:53

    You could use references to successively iterate through and build up the nested array structure:

    $out = array();
    foreach ($arr as $key=>$val) {
        $r = & $out;
        foreach (explode(".", $key) as $key) {
            if (!isset($r[$key])) {
                $r[$key] = array();
            }
            $r = & $r[$key];
        }
        $r = $val;
    }
    return $out;
    

提交回复
热议问题