PHP One level deeper in array each loop made

前端 未结 4 2099
旧巷少年郎
旧巷少年郎 2021-01-15 17:49

I\'m trying to loop through one array, adding a new level to another array each time. Let me illustrate - variable $arr\'s values are different each time

$ar         


        
相关标签:
4条回答
  • 2021-01-15 18:05
    function add_inner_array(&$array, $index) {
        if(isset($array[$index])) return true;
        else {
            $array[$index] = array();
            return true;
        }
    }
    
    $a = array(1,5,6);
    $index = array();
    $pass =& $index;
    foreach($a as $k) {
        add_inner_array($pass, $k);
        $pass =& $pass[$k];
    }
    
    0 讨论(0)
  • 2021-01-15 18:05

    I may be wrong, but I think you are asking the same as this question: Multidimensional Arrays Nested to Unlimited Depth

    0 讨论(0)
  • 2021-01-15 18:07

    You basically want to see how deep an multi-dimensional array is, right? If so this should be helpful: Is there a way to find out how "deep" a PHP array is?

    0 讨论(0)
  • 2021-01-15 18:23

    You can use references here:

    $a = array("1","5","6");
    $b = array();
    $c =& $b;
    
    foreach ($a as $k) {
        $c[$k] = array();
        $c     =& $c[$k];
    }
    

    outputs

    Array 
        (
        [1] => Array
            (
                [5] => Array
                    (
                        [6] => Array
                            (
                            )
                    )
            )
    )
    

    To overwrite the last element with some other value, you can just add the line:

    $c = 'blubber';
    

    after the loop, because $c is a reference to the deepest array level, when the loop is finished.

    0 讨论(0)
提交回复
热议问题