PHP - Convert multidimensional array to 2D array with dot notation keys

前端 未结 5 713
广开言路
广开言路 2020-11-27 15:22

There are plenty of tips and code examples out there of accessing PHP arrays with dot notation, but I would like to do somewhat the opposite. I would like to take a multidim

5条回答
  •  离开以前
    2020-11-27 15:48

    teh codez

    $ritit = new RecursiveIteratorIterator(new RecursiveArrayIterator($myArray));
    $result = array();
    foreach ($ritit as $leafValue) {
        $keys = array();
        foreach (range(0, $ritit->getDepth()) as $depth) {
            $keys[] = $ritit->getSubIterator($depth)->key();
        }
        $result[ join('.', $keys) ] = $leafValue;
    }
    

    output

    Array
    (
        [key1] => value1
        [key2.subkey] => subkeyval
        [key3] => value3
        [key4.subkey4.subsubkey4] => subsubkeyval4
        [key4.subkey4.subsubkey5] => subsubkeyval5
        [key4.subkey5] => subkeyval5
    )
    

    demo: http://codepad.org/YiygqxTM

    I need to go, but if you need an explanation of that tomorrow, ask me.

提交回复
热议问题