2009-06-25 2 views
1

그것은 큰 배열이므로 모든 값을 strtolower하지 않을 것입니다. 케이스 무감각 플래그 "i"와in_array()를 caseless로 사용하는 방법?

+0

호기심에서 strtolower를 피하는 이유가 '큰 배열'에 있습니까? 아니면 대체 옵션을 찾고 계십니까? :) –

답변

7

사용 preg_grep는 :

$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

0

난 단지 방법이하여 strtolower로가 알다시피. PHP는 문서도 주석을 참조하십시오 http://ch2.php.net/manual/en/function.in-array.php#88554

편집 : 당신이 코멘트에서 볼 수 있듯이 , 그것을 해결하기 위해 하나 이상의 방법은 물론의 있다. 나는 아마 내가 말하려고했던 철자가 틀렸다 ;-). 죄송합니다.

+0

두 개의 다른 답변 ('strotolower '사용하지 않음)이 이미 게시되어있어 놀랍습니다. –

+0

나는 너무 느렸다. 솔직히 말해서 문제를 해결할 수있는 방법은 항상 많이 있습니다. 그리고 난 strcasecmp 또는 preg_grep 지혜를 사용하는 이유가 표시되지 않습니다 - 플래그 ... 나를 위해 각각의 해답이 문제를 해결 ... – Gregor

관련 문제