Jeg tror, det du forsøger at opnå, kunne gøres bedre ved at bruge Haversine-formlen i din SQL. Google har en vejledning i, hvordan man får de nærmeste placeringer i en MySQL-database men den generelle idé er denne 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;
Så er alt det arbejde, du skal udføre, udført på databasen, så du ikke behøver at trække alle virksomheder ind i dit PHP-script, før du overhovedet tjekker afstanden.