cari

Rumah  >  Soal Jawab  >  teks badan

php - 一维数组 转 多维数组问题,乱了!

$arr = array('a','b','c','d');

转为

$brr = array(

'a'=>array(
    'b'=>array(
        'c'=>array(
            'd'=>array()
        )
    )
)

);

阿神阿神2896 hari yang lalu244

membalas semua(2)saya akan balas

  • PHP中文网

    PHP中文网2017-04-10 17:38:07

    <?php
    $arr = ['a', 'b', 'c', 'd'];
    $child = array();
    $res = [];
    while($v = array_pop($arr)) {
        $res = [$v => $child];
        $child = $res;
    }
    print_r($res);

    结果为

    Array
    (
        [a] => Array
            (
                [b] => Array
                    (
                        [c] => Array
                            (
                                [d] => Array
                                    (
                                    )
                            )
                    )
            )
    )

    balas
    0
  • 黄舟

    黄舟2017-04-10 17:38:07

    看到结构想到了递归,具体代码如下:

    
        function toMany ($arr) {
            $res = array();
            burnArr($res, $arr);
            return $res;
        }
        
        function burnArr (&$arr, $keys) {
            if ( !empty($keys) ) {
                $val = array_shift($keys);
                $arr[$val] = array();
                burnArr($arr[$val], $keys);
            } else {
                return ;
            }
        }
    

    balas
    0
  • Batalbalas