Предполагая, что значения уровня в массиве сохраняются отсортированными, например, (это 100 200 300, 400 и т. д., а не 200 500 100 300 400), тогда простое сканирование поможет:
$xp = 15084;
$last_key = null;
foreach($lvl_correspondenance as $key => $val) {
if ($val < $xp) {
$last_key = $key;
} else {
break;
}
}
Это выполнит итерацию по всему массиву и выпрыгнет, как только уровень XP в массиве станет больше, чем уровень XP, который вы ищете, оставив ключ этого "последнего" уровня в $ last_key