从数组中获取过滤后的值,例如10-20范围内的值

问题描述

| 如何从数组中获取过滤后的值,例如介于10到20之间的值。 我的数组包含10、15、18、25、88、20。 我只想在10到20之间打印。     

解决方法

        将
array_intersect
range
一起使用
$input = array(10,15,18,25,88,20);
$myrange = range(10,20);
$output = array_intersect($input,$myrange );
print_r($output );
演示     ,        你可以用
array_filter
function range10_20($var) {
    return ( $var >= 10 && $var <= 20 );
}

$input  = array(10,20);
$output = array_filter($input,\'range10_20\');
或类似的东西:
$input  = array(10,20);
$range  = array(
    \'from\' => 10,\'to\'   => 20
);
$output = array_filter($input,function ($element) use ($range) {
    return ( $var >= $range[\'from\'] && $var <= $range[\'to\'] );
});
    ,        PHP中有多种过滤数组的方法。 使用array_filter
$your_array = array(10,20);
$filtered = array_filter($your_array,create_function(\'$var\',\'return $var >= 10 && $var <= 20;\'));
var_export($filtered);
在行动 如果要更改范围起点和范围终点而无需修改create_function代码:
$your_array = array(10,20);
$range_start = 10;
$range_end = 20;
$filtered = array_filter($your_array,\'return $var >= \'.$range_start.\' && $var <= \'.$range_end.\';\'));
var_export($filtered);
在行动 $ your_array = array(10,20); 使用foreach循环:
$filtered = array();
$range_start = 10;
$range_end = 20;
foreach ($your_array as $k=>$v) {
    if ($v >= $range_start && $v <= $range_end) {
        $filtered[$k] = $v;
    }
}
var_export($filtered);
在行动 或者,如果您不需要创建新数组,而修改现有数组,则:
$your_array = array(10,20);

$range_start = 10;
$range_end = 20;
foreach ($your_array as $k=>$v) {
        if (!($v >= $range_start && $v <= $range_end)) {
                unset($your_array[$k]);
        }
}
var_export($your_array);
在行动     ,        有什么具体要求吗? php标准数组不支持范围搜索。 我有2条建议: 1)对数组进行排序,然后搜索您的上限,上限之前的任何内容都是您的结果 2)遍历数组,遍历时,应用范围条件。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...