首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用距离排序内容

问用距离排序内容
EN

Stack Overflow用户
提问于 2015-05-21 13:56:24
回答 2查看 85关注 0票数 1

我正在用Geotools软件包开发一个应用程序,我有一个问题:

代码语言:javascript
复制
public function prodcercanos()
{
    $cercanos = User::with('municipio')->with('productos')->get();
    $coordA   = Geotools::coordinate([44.4578589, 2.2951061999999998]); 
    foreach ($cercanos as $p) {
        $coordB   = Geotools::coordinate([$p->municipio->latitud,$p->municipio->longitud]);
        $distance = Geotools::distance()->setFrom($coordA)->setTo($coordB);
        echo $p->id;
        echo "<p>";
        echo $distance->in('km')->haversine();
        echo "</p>";
    }       
}

这段代码返回foreach中各点之间的距离,但我需要用这个距离对foreach进行排序,我不知道如何做到这一点。

有人能帮我吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-21 14:05:40

在foreach循环中,将其全部放在一个数组中,而不是遍历该数组。您可以使用距离作为键,使用HTML输出作为值。可以在数组上使用克索德函数按键对其进行排序。

代码语言:javascript
复制
public function prodcercanos()
    {
        $cercanos = User::with('municipio')->with('productos')->get();
        $coordA   = Geotools::coordinate([44.4578589, 2.2951061999999998]); 
        $output = [];
        foreach ($cercanos as $p) {
            $coordB   = Geotools::coordinate([$p->municipio->latitud,$p->municipio->longitud]);
            $distance = Geotools::distance()->setFrom($coordA)->setTo($coordB);
            $dis = $distance->in('km')->haversine();
            $output[$dis] = $p->id . "<p>$dis</p>";
        }       
        ksort($output);
        foreach ($output as $line) {
            echo $line;
        }
    }
票数 0
EN

Stack Overflow用户

发布于 2015-05-21 14:04:09

在PHP中使用sort()函数。要使用的语法:sort(array,sortingtype);

使用以下链接获取更多信息:sort.asp

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30375892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档