2012-05-06 6 views
3

괜찮아 난 일부 기능을 고개를 내가 PHP 뭔가있는 배열을 필터링하는 방법?

내가 어떤 문자열을

를 heres 예 포함 특정 배열을 제거하기 위해서 배열을 필터링 싶어, 어떤 찾는 행운이되어 있지 않은 것 같습니다 :

$array = array(1 => 'January', 'February', 'March'); 
$to_remove = "Jan"; // or jan || jAn, .. no case sensitivity 
$strip = somefunction($array, $to_remove); 
print_r($strip); 

[1] => February 
[2] => March 

에게 캐릭터를 찾을 경우, 배열에서 문자열을 찾는 기능을 돌려 전체 어레이 스트립

+4

HTTP ://php.net/array_filter? PHP의 함수는 찾기가 쉽고 이름을 따서 명명했습니다. –

+0

7 가지 질문 후 적어도 다음 중 하나는 받아 들일 수있는 대답이 있어야합니다. –

+0

@marc 네, 그렇지만 php에는이 함수에 대한 많은 정보가 없습니다. 어떻게 작동하는지보고 싶습니다. –

답변

7

사용할 수

array_filter(
    $array, 
    function ($element) use ($to_remove) { 
    return strpos($element, $to_remove) === false; 
    } 
); 

array_filterstripos

$array = array(1 => 'January', 'February', 'March'); 
print_r(array_filter($array, function ($var) { return (stripos($var, 'Jan') === false); })); 
+0

작동하지만 어떻게 그것을 위해 대/소문자 감도를 해제하는 방법? –

+1

stripos 함수를 사용하면 대소 문자를 구분할 필요가 없습니다. – mpratt

+0

좋은 대답, 감사합니다! –

0

가장 간단한 방법은 array_filter입니다. 이 함수는 필터링 할 배열과 수신 된 값을 기반으로 실제 필터링을 수행하는 콜백 함수를받습니다.

function filter_func($v) 
{ 
    return (($var % 2) == 0); 
} 
$test_array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); 
print_r(array_filter($test_array, "filter_func")); 

호프 helped!

당신은 closure (인라인 함수)와 array_filter()을 사용할 수 있습니다
관련 문제