首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何移除所有包含某个子串的PHP数组元素?

如何移除所有包含某个子串的PHP数组元素?
EN

Stack Overflow用户
提问于 2012-05-07 04:55:13
回答 3查看 18.1K关注 0票数 4

好的,我查找了一些函数,但我似乎没有找到任何幸运的函数,

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

下面是一个例子:

代码语言:javascript
复制
$array(1 => 'January', 2 => 'February', 3 => 'March',);
$to_remove = "Jan"; // or jan || jAn, .. no case sensitivity
$strip = somefunction($array, $to_remove);
print_r($strip);

它应该会返回

代码语言:javascript
复制
[1] => February
[2] => March

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-07 05:03:58

您可以使用array_filterstripos

代码语言:javascript
复制
$array = array(1 => 'January', 'February', 'March');
print_r(array_filter($array, function ($var) { return (stripos($var, 'Jan') === false); }));
票数 10
EN

Stack Overflow用户

发布于 2012-05-07 05:03:52

您可以将array_filter()与内联函数( closure -function)一起使用:

代码语言:javascript
复制
array_filter(
  $array,
  function ($element) use ($to_remove) {
    return strpos($element, $to_remove) === false;
  }
);

(PHP版本>= 5.3)

票数 5
EN

Stack Overflow用户

发布于 2012-05-07 05:03:18

最简单的方法是使用array_filter。此函数接收要过滤的数组,以及根据收到的值执行实际过滤的回调函数:

代码语言:javascript
复制
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" ) );

希望有帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10474216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档