Я делаю api для приложения бронирования такси, такого как uber.Я использую distancematrix, чтобы найти расстояние между двумя широтами и долготой. В этом единственном клиенте есть несколько драйверов вокруг него. Я бы хотел найти ближайшего водителя, используя единую широту и долготу клиента по широте и долготе нескольких водителей. Как я могу найти min & максимальное расстояние от водителя и получить min & максимальное значение на основе идентификатора драйвера.Как найти min & max в массиве push
Ниже кода я использую, чтобы найти ближайший драйвер:
<?php
function GetDrivingDistance($lat1, $lat2, $long1, $long2)
{
$url = "https://maps.googleapis.com/maps/api/distancematrix/json?origins=".$lat1.",".$long1."&destinations=".$lat2.",".$long2."&mode=driving&language=pl-PL";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_PROXYPORT, 3128);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$response = curl_exec($ch);
curl_close($ch);
$response_a = json_decode($response, true);
$dist = $response_a['rows'][0]['elements'][0]['distance']['text'];
$time = $response_a['rows'][0]['elements'][0]['duration']['text'];
return array('distance' => $dist, 'time' => $time);
//return $distance;
}
$cus_latlong_qry="SELECT * FROM customer_position WHERE customer_id='$customer_id'";
$cus_latlong_exe=mysqli_query($con,$cus_latlong_qry);
$cus_latlong_res=mysqli_fetch_array($cus_latlong_exe);
$cus_lat=$cus_latlong_res['latitude'];
$cus_long=$cus_latlong_res['longtitude'];
$driver_latlong_qry="SELECT * FROM driver_position WHERE driver_type='$_GET[type_id]' AND (booking_status='3' OR booking_status='2') AND active_status='0'";
$driver_latlong_exe=mysqli_query($con,$driver_latlong_qry);
$minimumvalue=array();
$distance=array();
while($driver_latlong_res=mysqli_fetch_array($driver_latlong_exe))
{
$driv_id=$driver_latlong_res['driver_id'];
$driv_lat=$driver_latlong_res['lattitude'];
$driv_long=$driver_latlong_res['longtitude'];
$dist = GetDrivingDistance($cus_lat,$driv_lat,$cus_long,$driv_long);
array_push($distance,$dist);
}
?>
здесь, как я могу найти минимальное расстояние & МХ в массиве толчке по отношению к определенному идентификатору драйвера .. ??
это дает сообщение об ошибке: array_push() ожидает параметр 1, чтобы быть массивом, нуль дан –
до нажатия инициализации массива '$ расстояния [$ driv_id] = массив(); ' – Fiil
нет сортировки бывают ?? Массив ( [HCB-1] => Массив ( [мин] => 14,6 ) [HCB-3] => Массив ( [мин] => 1 ) [HCB-2 ] => Массив ( [min] => 16.4 ) ) –