代码之家  ›  专栏  ›  技术社区  ›  Michael Lumbroso

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

  •  1
  • Michael Lumbroso  · 技术社区  · 16 年前

    有没有一种简单的方法来检查我的变量是否属于集合[0:n]?或者我必须写下每个条件(基本上是n<10,所以这是可行的,但不是实践?

    如果没有本机函数可以这样做,你能给我一个提示如何为这个函数?

    3 回复  |  直到 16 年前
        1
  •  1
  •   jeroen    16 年前

    你可以使用 range() in_array() .

    $number = 5;
    $set = range(0, 10);
    if (in_array($number, $set))
    {
        //
    }
    
        2
  •  1
  •   GOsha    16 年前
    $set = range(0,n);
    if (in_array ($value, $set)) {
        print "IS IN ARRAY!";
    }
    

    这在0到n的范围内是正确的

    $set = array(0,1,3,7...);
    
        3
  •  1
  •   Matchu    16 年前

    你可以让 range 然后跑 in_array ,但这可能对性能不太好。PHP会在内部循环使用您提供的数字来创建一个全新的(可能是巨大的)数组,然后再次循环使用数组来查看X是否在其中。对于一个简单的“是否在这些数字之内”的检查来说,这比必要的工作要多得多。

    function is_within_inclusive($x, $start, $end) {
        return $x >= $start && $x <= $end;
    }
    

    但是如果你已经定义了范围,不管怎样,因为其他原因, 看起来不错。

    推荐文章