Фрагмент, я считаю, что радиус уникален, иначе он будет перекрываться
$result = [];
foreach ($arr as $key => $value) {
// it will map radius as key and whole array as its value
$temp = array_column($value['data'], null, 'radius');
// I am fetching max key by which I will fetch data in next step
$key = max(array_keys($temp));
// fetching data of max value and saving it for the name
$result[$value['name']] = $temp[$key];
}
print_r($result);die;
Демо .
Если вы хотите сохранить структуру массива такой, какая она есть,
$result = [];
$i = 0;
foreach ($arr as $key => $value) {
$temp = array_column($value['data'], null, 'radius');
$key = max(array_keys($temp));
$result[$i]['name'] = $value['name'];
$result[$i]['data'] = $temp[$key];
$i++;
}
print_r($result);die;
Демо .