Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果没有详细的if子句,如何在PHP中找到两个数组子值之间的数组匹配?_Php_Arrays_Loops_If Statement_Multidimensional Array - Fatal编程技术网

如果没有详细的if子句,如何在PHP中找到两个数组子值之间的数组匹配?

如果没有详细的if子句,如何在PHP中找到两个数组子值之间的数组匹配?,php,arrays,loops,if-statement,multidimensional-array,Php,Arrays,Loops,If Statement,Multidimensional Array,我需要根据PHP中的最小值和最大值在数组中查找匹配项。如果没有详细的foreach、if、elseif、then子句,如何有效地获取匹配行 例如。。。给定数组$arr(如下)和数字4,如何返回数组行1、2和3 $arr = array( 0 => array( 'min' => 1, 'max' => 1, 'name' => 'alpha'), 1 => array( 'min' => 1, 'max' => 9

我需要根据PHP中的最小值和最大值在数组中查找匹配项。如果没有详细的foreach、if、elseif、then子句,如何有效地获取匹配行

例如。。。给定数组
$arr
(如下)和数字
4
,如何返回数组行
1
2
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')
);
我希望把它变成一个函数。大概是这样的:

function findMatchingRows($n) {
    $arr = /*** see above ***/;
    /*** your answer! ***/
    return $matchingRows;
}

$n = 12;
print_r(findMatchingRows($n));
上述的预期结果应该是行
2
3
4
。但我希望它能适用于1到100之间的任何整数。

$number=4;
$number = 4;
$result = array_filter($arr, function ($elem) use ($number) {
   return $elem['min'] <= $number && $number <= $elem['max'];
});
$result=array\u filter($arr,function($elem)use($number){
返回$elem['min']
foreach
有什么问题?它似乎不需要那么复杂……考虑到
array\u filter
的优雅,为什么要选择
foreach
?如果我的现实生活场景中的
$arr
中有数百个项目,而不是7个?
foreach
循环或冗长的
if
/
elseif
/
子句如果不是绝对必要的话也会很麻烦。下面的解决方案完美地说明了这一点。