我有我所在位置的坐标,并且我想从我的位置的最近到更远的位置对数据库的坐标进行排序。这是我获取并保存坐标的代码:
$myXCoor = 37.9730328;
$myYCoor = 23.7533623;
$xcoor = array();
$ycoor = array();
$result = mysqli_query($con, "SELECT * FROM `base`.`table` ;");
while($row = mysqli_fetch_array($result, MYSQLI_BOTH))
{
$xcoor[] = $row['x'];
$ycoor[] = $row['y'];
}
我真的不怎么继续,如果有人想要更多详细信息,请发表评论。
提前致谢
您可以通过添加顺序在SQL中完成此操作:
$myXCoor = 37.9730328;
$myYCoor = 23.7533623;
$xcoor = array();
$ycoor = array();
$order = "order by pow((t.x - $myXCoor),2) + pow((t.y - $myYCoor),2);";
$result = mysqli_query($con,"SELECT * FROM `base`.`table` t $order");
或者您可以使用usort:
$result = mysqli_query($con, "SELECT * FROM `base`.`table` ;");
$result = mysqli_fetch_all($result, MYSQL_BOTH);
usort($result, function($a,$b) use ($myXCoor,$myYCoor){
return pow($a['x'] - $myXCoor, 2) + pow($a['y'] - $myYCoor, 2)
> pow($b['x'] - $myXCoor, 2) + pow($b['y'] - $myYCoor, 2) ? 1 : -1;
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句