I need to find matching items in an array based on min and max values in PHP. Short of an elaborate foreach,if,elseif,then clause, how can I efficiently get matching rows?
For example… Given array $arr (below), and the number 4, how can I return array rows 1,2, and 3?
$arr = array(
0 => array( 'min' => 1, 'max' => 1, 'name' => 'alpha'),
1 => array( 'min' => 1, 'max' => 9, 'name' => 'beta'),
2 => array( 'min' => 1, 'max' => 19, 'name' => 'gamma'),
3 => array( 'min' => 2, 'max' => 29, 'name' => 'delta'),
4 => array( 'min' => 10, 'max' => 100, 'name' => 'epsilon'),
5 => array( 'min' => 20, 'max' => 100, 'name' => 'zeta'),
6 => array( 'min' => 30, 'max' => 100, 'name' => 'eta')
);
I’m hoping to turn this into a function. Something like this:
function findMatchingRows($n) {
$arr = /*** see above ***/;
/*** your answer! ***/
return $matchingRows;
}
$n = 12;
print_r(findMatchingRows($n));
Expected result would be for above should be rows 2, 3, and 4. But I would expect it to work for any integer between 1 and 100.
1 Answer