首页 > 解决方案 > 在php中的while函数中显示最小值

问题描述

在php的while函数中显示最小值?

这是我的代码

$lat = $_POST['lat'];
$lon = $_POST['lon'];

include 'koneksi.php';
$query = mysqli_query($con, "SELECT * FROM node");
$col = mysqli_num_rows($query);

while($row = $query->fetch_object()){ 
      $rad = 0.0174532925;
      $r = 6371;
      $lat1 = $lat * $rad;
      $lon1 = $lon * $rad;
      $lat2 = $row->latitude * $rad;
      $lon2 = $row->longitude * $rad;

      $x = ($lon2 - $lon1) * (cos(($lat1 + $lat2) / 2));
      $y = ($lat2 - $lat1);
      $h = ((sqrt($x * $x + $y * $y) * $r));
      $hasil_jarak = number_format($h, 3, ".", ",");
      echo $hasil_jarak."<br>";
} 

如何显示 hasil_jarak 的最小值?

我在echo下面使用了min()函数,但是错误,下面是错误消息。消息:“当只给出一个参数时,它必须是一个数组”。

如何解决?

标签: php

解决方案


在循环期间跟踪最小值可能是最简单的:

$minh = PHP_FLOAT_MAX;
while($row = $query->fetch_object()){ 
      $rad = 0.0174532925;
      $r = 6371;
      $lat1 = $lat * $rad;
      $lon1 = $lon * $rad;
      $lat2 = $row->latitude * $rad;
      $lon2 = $row->longitude * $rad;

      $x = ($lon2 - $lon1) * (cos(($lat1 + $lat2) / 2));
      $y = ($lat2 - $lat1);
      $h = ((sqrt($x * $x + $y * $y) * $r));
      if ($h < $minh) $minh = $h;
      $hasil_jarak = number_format($h, 3, ".", ",");
      echo $hasil_jarak."<br>";
} 
echo "minimum value is " . number_format($minh, 3, ".", ",");

推荐阅读