如何删除包含某个子字符串的所有PHP数组元素?

Lil*_*our 3 php arrays filtering higher-order-functions

好吧,我查找了一些功能,我似乎没有找到任何幸运,

我想过滤一个数组来剥离包含一些字符串的特定数组

下面是一个例子:

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

它应该回来

[1] => February
[2] => March
Run Code Online (Sandbox Code Playgroud)

查找数组中所有值的子字符串的函数,如果找到子字符串,则从数组中删除该元素

mpr*_*att 8

您可以使用array_filterstripos

$array = array(1 => 'January', 'February', 'March');
print_r(array_filter($array, function ($var) { return (stripos($var, 'Jan') === false); }));
Run Code Online (Sandbox Code Playgroud)


Mon*_*key 5

您可以将array_filter()闭包(内联函数)一起使用:

array_filter(
  $array,
  function ($element) use ($to_remove) {
    return strpos($element, $to_remove) === false;
  }
);
Run Code Online (Sandbox Code Playgroud)

(PHP 版本 >= 5.3)