Php Nearest Match

function getNearestMatch($number, $candidates) {
 
	$candidates = is_array($candidates) ? $candidates : array($candidates);
 
	$size = count($candidates);
	if ($size > 0) {
		//absolute difference between 0th element and input value
		$diff = abs($candidates[0] - $number);
		//element closest to input value
		$ret = $candidates[0];
		//loop through the rest of the array
		for ($i = 1; $i < $size; $i++) {
			$temp = abs($candidates[$i] - $number);
			if ($temp < $diff) {
				//set new difference and closest element
				$diff = $temp;
				$ret = $candidates[$i];
			}
		}
		return $ret;
	} else {
		return NULL;
	}
 
    }

Leave a Reply