Recursively loop through multidimensional to create flat array

后端 未结 3 2031
我在风中等你
我在风中等你 2021-01-26 16:36

I have a multidimensional array that looks like this:

$trees = array(
    array(
        \'name\' => \'Parent\',
        \'__children\' => array(
                  


        
3条回答
  •  轮回少年
    2021-01-26 17:18

    code

    'Parent',
            '__children' => array(
                array(
                    'name' => 'Child'
                ),
                array(
                    'name' => 'Second Child'
                )
            )
        )
    );
    
    echo"
    ";
    print_r($input_array);
    echo"
    "; function flatten($arr){ global $output_array; if(is_array($arr)){ foreach($arr as $key=>$value){ if($key=="name" && !is_array($value)){ $output_array[] = array($key=>$value); } elseif(is_array($value)){ flatten($value); } } } } flatten($input_array); echo"
    ";
    print_r($output_array);
    echo"
    ";

    Output

    //Input array
    Array
    (
        [0] => Array
            (
                [name] => Parent
                [__children] => Array
                    (
                        [0] => Array
                            (
                                [name] => Child
                            )
    
                        [1] => Array
                            (
                                [name] => Second Child
                            )
    
                    )
    
            )
    
    )
    
    //Output Array
    Array
    (
        [0] => Array
            (
                [name] => Parent
            )
    
        [1] => Array
            (
                [name] => Child
            )
    
        [2] => Array
            (
                [name] => Second Child
            )
    
    )
    

提交回复
热议问题