我可以检查某个整数值(来自用户输入,因此应该进行过滤)是否在特定范围内,如下所示:
<?php
$size=50;
var_dump(in_array($size,range(1,100)));
?>
如果尺寸在1到100。当然,另一种方法是使用过滤器:
<?php
$size=50;
$int_options = array("options"=>
array("min_range"=>0, "max_range"=>256));
var_dump(filter_var($size, FILTER_VALIDATE_INT, $int_options));
?>
但是,如果我需要知道数组的元素是否在这个范围内,该怎么办?(可能不删除)考虑到性能和内存使用情况,最佳做法是什么。我更喜欢使用php函数,而不是编写我的函数。
稍微有点功能性的方法(我不知道PHP是否支持lambdas):
function mapper($n) { return $n >= 1 && $n <= 100 ? 1 : 0; }
...
if (array_product(array_map('mapper', $array)) == 1) { }
不过,性能和内存效率都不高。
对于删除,我建议使用array_filter。
function my_filter($n) { return $n >= 1 && $n <= 100; }
...
$newarray = array_filter($array, 'my_filter');
(顺便说一句,那是谁设计的语言。array_map
和array_filter
的参数顺序不同?!)
如果我是你,我会使用一种更简单的方法:
$size=50;
if($size <= 100 && $size >= 1) {
return true;
} else {
return false;
}
无函数调用,简单的整数比较。表现不错。