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 Girme1
alınan sayı1
olmalıdır Girme6
alınan sayı1
olmalıdır Girme7
alınan sayı7
olmalıdır Girme16
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.