Dizideki en yakın küçük numarayı php

0 Cevap php

Ben örneğin bir dizi, (herhangi bir şey olabilir, ama zaten emretti) var:

array(1,7, 12, 18, 25);

Ben bu diziye en yakın olduğu sayı bulmalıyız.

Yukarıdaki dizi alıyor:

$needle = 11;

The number in array i want to retrieve is 7. The closest number to 11 should be 12, but i dont want the closest number, i want the minor closest number, if that makes any sense.

Başka bir örnek:

  • 26 alınan sayı 25 olmalıdır Girme
  • 1 alınan sayı 1 olmalıdır Girme
  • 6 alınan sayı 1 olmalıdır Girme
  • 7 alınan sayı 7 olmalıdır Girme
  • 16 alınan sayı 12 olmalıdır Girme

Ben güzel bir işlevi bulundu, ama sadece küçük sayı en yakın en yakın numarayı almak, ve değil:

function closestnumber($number, $candidates) {
 for($i = 0; $i != sizeof($candidates); $i++) {
  $results[$i][0] = abs($candidates[$i] - $number);
  $results[$i][1] = $i;
 }
 sort($results);
 $end_result['closest'] = $candidates[$results[0][1]];
 $end_result['difference'] = $results[0][0];
 return $end_result;
}

$closest = closestnumber(8,array(1,7, 12, 18, 25));
echo "Closest: ".$closest['closest']."<br>";
echo "Difference: ".$closest['difference'];

Şimdiden teşekkürler.

0 Cevap