5
arrayclosest
array_closest
SYNOPSIS
array_closest($arr, $val, $below=false)
DESCRIPTION
array_closest
retourne la valeur du tableau $arr
qui est la plus proche de $val
.
Si $below
vaut true
, array_closest
retourne la valeur inférieure la plus proche.
Si $below
vaut false
, array_closest
retourne la valeur supérieure la plus proche.
Si $val
est plus petite que la plus petite valeur de $arr
, cette valeur est retournée.
Si $val
est plus grande que la plus grande valeur de $arr
, cette valeur est retournée.
CODE
- function array_closest($arr, $val, $below=false) {
- $narr=count($arr);
- if ($narr == 0) {
- return $val;
- }
- if ($narr == 1) {
- return $arr[0];
- }
- sort($arr);
- if ($arr[0] >= $val) {
- return $arr[0];
- }
- if ($arr[$narr - 1] <= $val) {
- return $arr[$narr - 1];
- }
- foreach($arr as $v) {
- if ($v == $val) {
- return $v;
- }
- if ($v > $val) {
- return $below ? $prev : $v;
- }
- $prev=$v;
- }
- }
Commentaires