Мисля, че това, което се опитвате да постигнете, може да се направи по-добре с помощта на формулата на Haversine във вашия SQL. Google има урок за това как да получите най-близките местоположения в база данни на MySQL но общата идея е този SQL:
SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) )
* cos( radians( lng ) - radians(-122) ) + sin( radians(37) )
* sin( radians( lat ) ) ) ) AS distance
FROM markers
HAVING distance < 25
ORDER BY distance LIMIT 0 , 20;
Тогава цялата работа, която трябва да свършите, се извършва върху базата данни, така че не е нужно да дърпате всички фирми във вашия PHP скрипт, преди дори да проверите разстоянието.