Saya rasa apa yang ingin Anda capai dapat dilakukan dengan lebih baik menggunakan rumus Haversine di SQL Anda. Google memiliki tutorial tentang cara mendapatkan lokasi terdekat di database MySQL tetapi ide umumnya adalah SQL ini:
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;
Kemudian semua pekerjaan yang perlu Anda lakukan dilakukan di database, jadi Anda tidak perlu memasukkan semua bisnis ke dalam skrip PHP bahkan sebelum Anda memeriksa jaraknya.