Exemple #1
0
function array_unnest(array $in, array $stack = [])
{
    $out = [];
    foreach ($in as $k => $v) {
        array_push($stack, $k);
        if (is_array($v)) {
            $out = array_merge($out, array_unnest($v, $stack));
        } else {
            $out[implode('.', $stack)] = $v;
        }
        array_pop($stack);
    }
    return $out;
}
Exemple #2
0
 function test_array_unnest()
 {
     $in = ['user' => ['name' => ['first' => 'bob', 'last' => 'smith']]];
     $expected = ['user.name.first' => 'bob', 'user.name.last' => 'smith'];
     $this->assertEquals($expected, array_unnest($in));
 }