我创建了一个数据库并在网上找到了一个代码,可以让你搜索一个邮政编码或城市,它会查看数据库,找到搜索到的位置这么多英里内的商家。我的问题是,在查询之后,我希望显示的商家按输入位置的距离排序。但是,每次搜索的距离都不同,而不是您可以从数据库中提取的内容。所以我认为这可能是一个阵列的好地方?
按顺序从数据库中拉出业务,按顺序将它们放入数组(最短距离),然后以正确的顺序显示数组供人们查看。我的问题是,有更简单的方法吗?我将在下面发布一些代码到目前为止。我现在很难过。谢谢你的帮助。另外,我似乎无法按顺序显示数组?显然,最底层阵列仅基于3家企业发现......当时可能会有几家企业。我只是不知道如何自动调整?下面的$ distance1代码效果很好。 $ distance1确实显示所有呈现的业务的正确距离。谢谢!
//// BASED ON ARRAY FROM ABOVE, PULL BUSINESSES WITHIN THE MILES SELECTED ////
$query1 = "SELECT * FROM `list` WHERE `zip` IN (".implode(',',$locations).")";
$result1 = mysql_query($query1) or die ("<br /><br />There's an error in the MySQL-query: ".mysql_error());
while ($row1 = mysql_fetch_assoc($result1)) {
$bus_name = $row1["bus_name"];
$bus_city = $row1["city"];
$bus_state = $row1["state"];
$bus_zip = $row1["zip"];
//// DISTANCE BETWEEN SEARCH START AND END ////
$distance1 = round($searched2_zip->getDistanceTo($bus_zip), 2);
//// ADD DISTANCE TO SQL QUERY ////
array_push($row1, $distance1);
//// MAKE ALL ROWS A GIANT ARRAY ////
$store[] = $row1;
}
//// MULTIDIMENSIONAL ARRAY --> SHOW 2 VALUES (DISTANCE AND BUS_NAME) ////
$shop = array( array($store[0][0],$store[0][bus_name]),
array($store[1][0],$store[1][bus_name]),
array($store[2][0],$store[2][bus_name])
);
sort($shop); //// SORT BY NUMERICAL DISTANCE ////
}
答案 0 :(得分:0)
您需要usort
。
看看这篇文章 https://stackoverflow.com/a/2699159/2209160
在你的情况下:
usort($shop, function($a, $b) {
return $a[0] > $b[0];
});
如果你的php版本是&gt; = 5.3