<?php

$test = array(
    'abc' => 123,
    'def' => 456,
    'test' => array(
        123 => 'hip',
        'hop' => null
    )
);

var_dump(flatten($test));



function flatten($arr, $prefix = '') {
	$out = [];
	foreach($arr as $key => $val){
		if(is_array($val))
			$out = array_merge($out, flatten($val, $prefix . $key . '.'));
		else
			$out[$prefix . $key] = $val;
	}	
	return $out;
}