nicklasos
1/28/2015 - 3:42 PM

php array dot flatten

php array dot flatten

<?php
function array_dot_flatten($data)
{
    foreach ($data as $key => $field) {
        if (is_array($field)) {
            foreach ($field as $fieldKey => $value) {
                $data["$key.$fieldKey"] = $value;
            }
            unset($data[$key]);
        }
    }

    return $data;
}

public function testFlattenDotArray()
{
    $data = [
        'bar' => 'foo',
        'stats' => [
            'boo' => 1,
            'lol' => true
        ]
    ];

    $this->assertEquals(
        [
            'bar' => 'foo',
            'stats.boo' => 1,
            'stats.lol' => true
        ],
        array_dot_flatten($data)
    );
}