我从数据库中的用户的纬度和经度阵列中的 ,我有我的纬度和经度排序数组,从数组计算
现在我想计算距离和排序从我的数据库用户与
$mylat = $_SESSION['lat'];
$mylng = $_SESSION['lng'];
$statement = $pdo->prepare("SELECT * FROM users");
$statement->execute();
$users = $statement->fetchAll();
foreach($users as $row){
$dist = 0.0;
$x1 = $mylng;
$x2 = $row['lng'];
$y1 = $mylat;
$y2 = $row['lat'];
$dist = acos(sin($x1=deg2rad($x1))*sin($x2=deg2rad($x2))+cos($x1)*cos($x2)*cos(deg2rad($y2) - deg2rad($y1)))*(6378.137);
$distn = FLOOR (ROUND($dist,1) * 2)/2 ;
}
sort($distn);
foreach ($users as $row) {
$dist = 0.0;
$x1 = $mylng;
$x2 = $row['lng'];
$y1 = $mylat;
$y2 = $row['lat'];
$dist = acos(sin($x1=deg2rad($x1))*sin($x2=deg2rad($x2))+cos($x1)*cos($x2)*cos(deg2rad($y2) - deg2rad($y1)))*(6378.137);
$distn = FLOOR (ROUND($dist,1) * 2)/2 ;
echo $row['username'];
echo $distn;
}
所以在第一的foreach我计算我的每个用户的距离。 比我想排序的距离后,我的用户,并显示他们 与那里的名字和有我的距离。
user1 0.5km distance
user2 1km distance
但我不会工作。 感谢您的帮助:)
'排序($ distn)',$ DSTN看起来并不像一个数组 –
•萨达西文皮莱,$ distn是一个值,是使用数组中的值为数组中的每个值计算的。 array:user1 => lat => lng,user2 => lat => lang,等等...我想计算用户和我之间的距离并对它进行排序 – Sentry