2010-07-06 76 views
1

我有一個表單,我需要檢查輸入是否屬於枚舉(0,1,2,3,..,n) 有沒有簡單的方法來檢查我的變量是否屬於set [0:n ]?或者我必須寫出每個條件(基本上n < 10,所以這是可行的,但不是那個實際...)?有沒有一種快速的方法來檢查一個變量是否屬於一個集合?

如果沒有本地函數來做到這一點,你能給我一個關於如何爲此做一個函數的提示嗎?

謝謝:)

+1

你是如何指定你的設置? – 2010-07-06 15:26:04

回答

1

您可以使用range()in_array()的組合。

例子:

$number = 5; 
$set = range(0, 10); 
if (in_array($number, $set)) 
{ 
    // 
} 
+0

謝謝,我不知道範圍(),真的很實用。 – 2010-07-06 15:31:56

+0

不客氣! – jeroen 2010-07-06 15:54:08

1
$set = range(0,n); 
if (in_array ($value, $set)) { 
    print "IS IN ARRAY!"; 
} 

如果你想使特定的範圍內這是到n 範圍從0真。 F.E. 0,1,3,7,您可以使用

$set = array(0,1,3,7...); 
1

你可以使range和運行in_array,但可能不會是偉大的表現。 PHP會在內部最終循環遍歷你提供的數字來創建一個全新的(可能是巨大的)數組,然後再遍歷整個數組以查看X是否在某處。對於一個簡單的「在這些數字之內」檢查來說,這是比完成更多的工作。

堅持這兩個條件可能是最好的方法,尤其是因爲它會更具可讀性。如果出於某種原因,您也可以創建一個輔助函數,真的讓您滿意。

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

但如果你已經擁有了範圍界定,反正其他原因,in_array似乎罰款。

相關問題