目前,我正在做這樣的事情:針對多個值檢查一個變量?
if (in_array ($variable, ["a","b","c"])) { ... }
其內容比
if ($variable == "a" || $variable == "b" || $variable == "c") { ... }
更容易一點,但我想知道,有沒有更有效的辦法,而不是檢查的價值陣列?
目前,我正在做這樣的事情:針對多個值檢查一個變量?
if (in_array ($variable, ["a","b","c"])) { ... }
其內容比
if ($variable == "a" || $variable == "b" || $variable == "c") { ... }
更容易一點,但我想知道,有沒有更有效的辦法,而不是檢查的價值陣列?
嘗試這樣
$my_array = array_flip(array('a', 'b', 'c', 'd', ...));
if (isset($my_array[$variable])) ...
這有一個時間爲O(n)的成本創造$ my_array,然後進行匹配檢測爲O(1)。
聲音kewl。任何基準? – vikingmaster 2013-02-19 13:17:27
基準.. ??我dnt知道他們是什麼.. – Gautam3164 2013-02-19 13:19:08
@Jari你可以upvote,如果它好..可能是 – Gautam3164 2013-02-19 13:19:30
您可以使用開關盒用於檢查變量對多個值的語句。
請參考下面提到的代碼片段
例如,
switch($a)
{
case 'a':
//do something
break;
case 'b':
//do something
break;
case 'c':
//do something
break;
}
我試圖縮短它:P另外,我打算在'?:'條件下使用它。 – RemiDG 2013-02-19 13:33:02
我喜歡這種做事的方式 – Dale 2013-02-19 13:15:23