相关疑难解决方法(0)

将平面数组转换为分层的多维数组

我有一个带键值对的标准数组 - 我想用键将它转换成一个多维数组.困难似乎是我需要递归循环未知数量的新密钥并将它们转换为多维数组.总之,我想要这个:

$val[alfa.xray.uno] = "Some value";    
=> $val['alfa']['xray']['uno'] = "Some value";    
Run Code Online (Sandbox Code Playgroud)

示例:(代码失败,还需要处理N维 - 但你明白了......)

$arr['alfa.xray.uno'] = "Alfa X-Ray Uno";
$arr['alfa.yaho.duo'] = "Alfa Yaho Duo";
$arr['beta.xray.uno'] = "Beta X-Ray Uno";
$arr['beta.xray.duo'] = "Beta X-Ray Duo";
$arr['just-me'] = "Root-level item";

print_r( array_flat_to_multidimensional($arr) );

function array_flat_to_multidimensional($arr) {
    foreach($arr as $key=>$val) {
        $key = explode(".",$key);
        for($i=0; $i<count($key); $i++) {
            if($i==0) { $out[$key[$i]] = $val; }
            else if($i==1) { $out[$key[$i-1]][$key[$i]] = $val; }
            else if($i==2) { $out[$key[$i-2]][$key[$i-1]][$key[$i]] = $val; }
            else if($i==3) { $out[$key[$i-3]][$key[$i-2]][$key[$i-1]][$key[$i]] …
Run Code Online (Sandbox Code Playgroud)

php arrays recursion multidimensional-array

4
推荐指数
1
解决办法
2186
查看次数

标签 统计

arrays ×1

multidimensional-array ×1

php ×1

recursion ×1