2012-05-06 5 views
3
私はHERESに例いくつかの文字列

PHP何かを含む配列をフィルタリングする方法は?

含まれている特定のアレイストリップに配列フィルタたい私はいくつかの機能を見て、私は、任意のを見つけるの幸運に

は思えません

OK:

$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つの質問の後に、少なくとも1つは受け入れられる答えが必要です。 –

+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")); 

希望を助けました!

あなたが closure(インライン関数)で array_filter()を使用することができ
関連する問題