如何找到min&;阵列推送中的最大值


How to find min&max in array push

我正在为uber这样的出租车预订应用程序做一个api。我用距离线来求两个纬度和经度之间的距离。在一个客户周围有多个驱动程序。我想用一个客户的纬度和经度来寻找最近的驱动程序,而不是多个驱动的纬度和纬度。我怎样才能找到min&驾驶员的最大距离和获得最小&基于驱动程序id的最大值

下面的代码我正在使用寻找最近的司机:

<?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);
                }
?>

在这里我如何找到min&mx阵列推送中相对于特定驱动程序id的距离。。??

使用min&最大enter code here

min($distance[$driv_id]);     
max($distance[$driv_id]);

简单的逻辑,收集min&最大值:

$drivers = 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[$driv_id], $dist);
  $drivers[$driv_id]['min'] = min($distance[$driv_id]);     
  $drivers[$driv_id]['max'] = max($distance[$driv_id]);
 }
print_r($drivers);

结果,您将获得$drivers数组,其中第一个关键字是driver_id,而作为第二个关键字,您将为他提供最小值和最大值。