Search code examples
phparraysloopsmultidimensional-arraykey

Collect all unique key paths of a multidimensional array


[
    'a' => [
        'a' => ['a' => null, 'b' => null],
        'b' => ['a' => null, 'b' => null]
    ],
    'b' => [
        'a' => ['a' => null, 'b' => null],
        'b' => ['a' => null, 'b' => null]
    ]
]

How can I get the below string from the above array?

aaa,aab,aba,abb,baa,bab,bba,bbb

Solution

  •  $str = array();
    foreach($array as $key1 => $value1)
    {
       foreach($value1 as $key2 => $value2)
       {
         foreach($value2 as $key3 => $value3)
            $str[]= $key1.$key2.$key3;
       }
    }
    
    echo implode(',', $str);