【发布时间】:2020-01-27 06:17:10
【问题描述】:
我有一个 foreach 循环,我想按距离对结果进行排序。
foreach ($this->items as $i => $item) {
$latitudeFrom = 123;
$longitudeFrom = 123;
$theta = $longitudeFrom - $this->item->longitude;
$dist = sin(deg2rad($latitudeFrom)) * sin(deg2rad($this->item->latitude)) + cos(deg2rad($latitudeFrom)) * cos(deg2rad($this->item->latitude)) * cos(deg2rad($theta));
$dist = acos($dist);
$dist = rad2deg($dist);
$miles = $dist * 60 * 1.1515;
$distance = $miles * 1.609344;
}
echo $distance;
我想按$distance 对其进行排序。如何做到这一点?
【问题讨论】:
-
我认为您可以将循环体中的所有内容都放在对 php.net/manual/en/function.usort.php 的回调中,您的浮点数需要转换为 int 表示形式,但这不应该很难。
-
@AlexBarker 我无法从那里得到它。一旦我回显 $distance 我希望它被排序。
-
你想要什么,按 $distance 排序的数组,还是只是最远/最短的 $distance?您的示例当前将距离描述为浮点数。我想我要问的是你想要的“结果”是什么。
-
@AlexBarker 是的,我想要一个按 $distance 从最近到最远排序的数组