有没有快速的方法来检查变量是否属于一个集合?

时间:2010-07-06 15:21:01

标签: php set elements

我有一个表单,我需要检查输入是否属于枚举(0,1,2,3,..,n) 有没有一种简单的方法来检查我的变量是否属于集合[0:n]?或者我是否必须写出每个条件(基本上n< 10,所以它是可行的但不是那个实际的......)?

如果没有本机功能,你可以给我一个关于如何为此做一个功能的提示吗?

谢谢:)

3 个答案:

答案 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似乎没问题。