Press "Enter" to skip to content

PHP如何利用数组的值进行排序

在开发过程中遇到一个需求是通过API接口获取所选城市内的所有餐厅,并根据当前定位进行距离由近及远进行排序。

具体需求是这样的,由于传递的定位参数只有所选城市和经纬坐标,而数据库中也只存储了餐厅的经纬度信息,当然可以通过套用Haversine公式直接使用SQL语句进行排序查询,但是处于业务需求的考量,由于一个城市的餐厅数量不会太多,加之还需要通过调用第三方地图API去获取实时距离(参考外卖APP的距离显示), 所以想通过数组排序的形式返回。

现在理清一下逻辑,首先通过数据库查询当前城市的所有餐厅;其次通过第三方地图API获取当前定位和各个餐厅之间的坐标距离;然后根据获取到的距离参数对PHP数组进行排序。

这里记录的就是最后一步,PHP如何使用数组的值进行排序。

首先,我们假设餐厅数组中有各式各样的元素,比如餐厅名称、地址、编号、经纬度以及距离。那么我们可以使用PHP函数“array_column”来获取数组中指定的一列,比如这里的排序字段“距离”。

其次,我们可以采用PHP函数“array_multisort”对多个数组进行统一排序的方法,完成对餐厅数组的排序需求。

综上,PHP使用数组的值进行排序的方法总结如下:

Comments are closed, but trackbacks and pingbacks are open.