Я создал базу данных и нашел код в Интернете, который позволяет вам искать почтовый индекс или город, и он будет искать в базе данных, чтобы найти предприятия на столько миль от искомого местоположения. Моя проблема заключается в том, что после запроса я хочу, чтобы показанные предприятия были заказаны на расстоянии от введенного местоположения. Тем не менее, расстояние отличается от каждого поиска, а не то, что вы можете извлечь из базы данных. Поэтому я думаю, что это может быть хорошим местом для массива?Сортировка базы данных из массива
Извлеките предприятия из базы данных из строя, поместите их в массив по порядку (самое короткое расстояние), затем отобразите массив в правильном порядке, чтобы люди могли видеть. Мой вопрос: есть ли более простой способ? Я отправлю код ниже того, что у меня есть. Сейчас я довольно тупой. Спасибо за любую помощь. Кроме того, я не могу показать массив в порядке? И, очевидно, самый нижний массив основан только на трех найденных предприятиях .., когда их может быть несколько. Я просто не знаю, как настроить это автоматически? код $ 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 ////
}
usort работал отлично. Все в порядке. Однако он по-прежнему выбирает каждое поле из массива для отображения в каждой строке. Как использовать функцию списка для отображения всего 2 полей в массиве? «//// СНП численными ХОДЬБЫ (Сортировка по '0'. Для сортировки по ГОРОД = 'BUS_NAME') //// \t \t \t функцию sortByOrder ($ а, $ б) { \t \t \t вернуть $ a ['0'] - $ b ['0']; \t \t \t} \t \t \t \t usort ($ магазин, 'sortByOrder'); \t \t \t //// КОНЕЦ СНП численными ХОДЬБЫ //// \t \t \t \t \t \t \t \t эхо "
"; \t \t \t \t \t \t \t \t Еогеасп ($ магазина в $ v1) { \t \t \t \t Еогеасп ($ v1 v2, как $) { \t \t \t \t эхо "$ v2 \ п"; \t \t \t \t} \t \t \t \t эхо "
"; \t \t \t \t} – Rmurp006
Вы хотите ограничить $ store до 2 результатов (наиболее подходящим может быть) использовать array_slice? в противном случае я не понимаю, что вы пытаетесь сделать.опубликуйте результат, которого вы хотите достичь, возможно. –
никогда не думал, что понял. в то время как цикл - это то, что мне нужно. $ x = 0; \t \t \t \t в то время как ($ х <$ num_of_bus) \t \t \t \t { \t \t \t \t эхо "". $ Магазин [$ х] [bus_name]. "В". $ Магазин [$ х] [город ]. "(". $ store [$ x] [0] "миль")
"; \t \t \t \t $ x ++; \t \t \t \t} – Rmurp006