表題の件です。査収ください。
$d = [
0=>[
1=>[
2=>'a',
3=>'b'
],
'a'=>'x'
]
];
function flt($values, &$ret, $keys = [], $key = null){
if($key !== null) $keys[] = $key;
if(!is_array($values)) $ret[implode('.', $keys)] = $values;
else foreach($values as $k=>$v){ flt($v, $ret, $keys, $k);}
}
flt($d, $ret);
print_r($ret);
/*
array [
"0.1.2" => "a"
"0.1.3" => "b"
"0.a" => "x"
]
*/