A function that returns the lower, higher, and closest number. The function receives two parameters: an array with numbers, and the number. Compares that number with the numbers from array, than returns an associative array with three elements: the "lower", "higher", and "closest" number.
<?php
// retutrs an array with the number from $array: lower, higher and closest to $nr
function closestLowerHigherNr($array, $nr) {
  // PHP-MySQL Course - https://coursesweb.net/php-mysql/
  sort($array);      // Sorts the array from lowest to highest

  // sets the array that will be returned, initially with the lowest and highest number from $array
  $re_arr = array('lower'=>min(current($array), $nr), 'higher'=>max(end($array), $nr), 'closest'=>$nr);

  // traverse the numbers, stores in $re_arr the number immediately lower and higher than $nr
  foreach($array AS $num){
    if($nr > $num) $re_arr['lower'] = $num;
    else if($nr <= $num){
      // if the current number from $array is equal to $nr, or immediately higher, stores that number
      // and stops the foreach() loop
      $re_arr['higher'] = $num;
      break;
    }
  }

  // here it gets the closest number to $nr
  // (the number ('lower' or 'higher') with the lowest diferrence between its value and $nr)
  $re_arr['closest'] = (abs($nr - $re_arr['lower']) < abs($re_arr['higher'] - $nr)) ? $re_arr['lower'] : $re_arr['higher'];

  return $re_arr;
}

// Example
$numbers = array(-8, -3, 0, 5.8, 12, 9, 2.1);
$test1 = closestLowerHigherNr($numbers, -6);
$test2 = closestLowerHigherNr($numbers, 3);
$test3 = closestLowerHigherNr($numbers, 9);

// see the values in $test1, $test2, $test3
var_export($test1);       // array ( 'lower' => -8, 'higher' => -3, 'closest' => -8 )
var_export($test2);       // array ( 'lower' => 2.1, 'higher' => 5.8, 'closest' => 2.1 )
var_export($test3);       // array ( 'lower' => 5.8, 'higher' => 9, 'closest' => 9 )
?>
This function works also if $nr is lower, or higher than any number in $array.
Example:
<?php
// here add the closestLowerHigherNr() function

$numbers = array(-8, 2, 12);
$test4 = closestLowerHigherNr($numbers, -23);      // -23 is lower than any number in $numbers
$test5 = closestLowerHigherNr($numbers, 18);       // 18 is higher than any number in $numbers

// see the values in $test4, $test5
var_export($test4);       // array ( 'lower' => -23, 'higher' => -8, 'closest' => -23 )
var_export($test5);       // array ( 'lower' => 12, 'higher' => 18, 'closest' => 18, )
?>

Daily Test with Code Example

HTML
CSS
JavaScript
PHP-MySQL
Which attribute specifies the HTTP method (GET, POST) used to submit the form-data?
action method value
<form action="script.php" method="post"> ... </form>
Which CSS property allows to add shadow to boxes?
background-image box-shadow border-radius
#id {
  background-color: #bbfeda;
  box-shadow: 11px 11px 5px #7878da;
}
Which function removes the first element from an array?
pop() push() shift()
var fruits = ["apple", "apricot", "banana"];
fruits.shift();
alert(fruits.length);           // 2
Indicate the function that can be used to check if a PHP extension is instaled.
function() filetype() extension_loaded()
if(extension_loaded("PDO") === true) echo "PDO is available."
Get Lower, Higher, and Closest Number

Last accessed pages

  1. querySelector and querySelectorAll (12788)
  2. Contact page - CoursesWeb (29291)
  3. Tabs effect with CSS (29953)
  4. Making DIV Contents Scroll Horizontally, with multiple Div`s inside (36637)
  5. Add and Remove HTML elements and Content with jQuery (26500)

Popular pages this month

  1. Making DIV Contents Scroll Horizontally, with multiple Div`s inside (722)
  2. Contact page - CoursesWeb (705)
  3. Tabs effect with CSS (702)
  4. Courses Web: PHP-MySQL JavaScript Node.js Ajax HTML CSS (231)
  5. PHP-MySQL free course, online tutorials PHP MySQL code (173)