我有一个表单,我需要检查输入是否属于枚举(0,1,2,3,..,n) 有没有一种简单的方法来检查我的变量是否属于集合[0:n]?或者我是否必须写出每个条件(基本上n< 10,所以它是可行的但不是那个实际的......)?
如果没有本机功能,你可以给我一个关于如何为此做一个功能的提示吗?
谢谢:)
答案 0 :(得分:1)
您可以使用range()
和in_array()
的组合。
示例:
$number = 5;
$set = range(0, 10);
if (in_array($number, $set))
{
//
}
答案 1 :(得分:1)
$set = range(0,n);
if (in_array ($value, $set)) {
print "IS IN ARRAY!";
}
从0到n的范围内都是如此 如果你想制作特定的范围。 F.E. 0,1,3,7,你可以用
$set = array(0,1,3,7...);
答案 2 :(得分:1)
您可以制作range并运行in_array,但这可能不会对性能有所帮助。 PHP会在内部最终循环遍历您提供的数字以创建一个全新的(可能是巨大的)数组,然后再遍历数组以查看X是否在某处。对于一个简单的“在这些数字范围内”检查,这是一项比必要工作更多的工作。
坚持这两个条件可能是最好的方法,特别是因为它更具可读性。如果出于某种原因,你可以帮助你做一个帮手功能。
function is_within_inclusive($x, $start, $end) {
return $x >= $start && $x <= $end;
}
但如果您已经定义了范围,无论如何,出于其他原因,in_array似乎没问题。