4

わかりました、いくつかの関数を調べましたが、幸運にも見つけられなかったようです。

配列をフィルタリングして、文字列を含む特定の配列を削除したい

ここに例があります:

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

それは戻るべきです

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

配列内のすべての値の部分文字列を検索する関数。部分文字列が見つかった場合は、その要素を配列から削除します

4

3 に答える 3

10

array_filterstriposを使用できます

$array = array(1 => 'January', 'February', 'March');
print_r(array_filter($array, function ($var) { return (stripos($var, 'Jan') === false); }));
于 2012-05-06T21:03:57.597 に答える
5

array_filter()クロージャー(インライン関数)と共に使用できます。

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

(PHP バージョン >= 5.3)

于 2012-05-06T21:03:52.437 に答える
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" ) );

希望は助けた!

于 2012-05-06T21:03:17.783 に答える