2009-06-25 47 views
1

這是一個很大的陣列,所以我不會去追求每一個價值。如何使用in_array()進行大小寫?

+0

出於好奇,是否有理由避免strtolower'大陣',或者你只是尋找替代選擇? :) – 2009-06-25 10:44:34

回答

7

使用preg_grep與不區分大小寫標誌「i」:

$result = preg_grep('/pattern/i', $array); 
1

試試這個使用strcasecmp function

$array = array('foo', 'bar', 'baz', 'quux'); 
$needle = 'FOO'; 

$hit = false; 
foreach ($array as $elem) { 
    if (is_string($elem) && strcasecmp($needle, $elem) == 0) { 
     $hit = true; 
     break; 
    } 
} 
var_dump($hit); 
+0

這是最有效的一個。 – moo 2009-06-25 11:09:32

0

據我所知,只有方式與用strtolower。另請參見注釋在PHP文檔:http://ch2.php.net/manual/en/function.in-array.php#88554

編輯: 正如你可以在註釋中看到的,當然是的解決這個問題的方法不止一種。我可能錯過拼寫我想說的話;-)。抱歉。

+0

這是一個令人驚訝的答案,因爲已經發布了兩個不同的答案(不使用`strotolower`)。 – 2009-06-25 10:32:35

相關問題