<?php

$array = array(
    'a' => array(
        'b' => array(
            'c' => 'val'
        ),
        'd' => 'val2'
    ),
    'e' => 'val3'
);

var_dump(collapse($array));

function collapse($array)
{
    $result = array();
    foreach ($array as $key => $val) {
        if (is_array($val)) {
            foreach (collapse($val) as $nested_key => $nested_val) {
                $result[$key . '.' . $nested_key] = $nested_val;
            }
        } else {
            $result[$key] = $val;
        }
    }
    
    return $result;
}