从值与指定字符串匹配的数组中删除元素

wym*_*man 5 php arrays filter

我有一个看起来像这样的数组:

Array ( [0] => Vice President [1] =>   [2] => other [3] => Treasurer )

我想删除值other中的值.

我尝试用来array_filter过滤这个单词,但array_filter也会删除所有空值.

我希望结果是这样的:

Array ( [0] => Vice President [1] =>   [2] => Treasurer )

这是我的PHP过滤器代码:

function filter($element) {
  $bad_words = array('other');  

  list($name, $extension) = explode(".", $element);
  if(in_array($name, $bad_words))
    return;

  return $element;
}

$sport_level_new_arr = array_filter($sport_level_name_arr, "filter");

$sport_level_new_arr = array_values($sport_level_new_arr);

$sport_level_name = serialize($sport_level_new_arr);
Run Code Online (Sandbox Code Playgroud)

我可以使用其他方法来过滤这个单词吗?

Jas*_*ary 5

array_filter()是正确的函数。确保您的回调函数具有正确的逻辑。

请尝试以下操作:

function other_test($var) {
    // returns whether the value is 'other'
    return ($var != 'other');
}

$new_arr = array_filter($arr, 'other_test');
Run Code Online (Sandbox Code Playgroud)

注意:如果你想重新索引数组,那么你可以$new_arr = array_values($new_arr);在上面之后调用。


小智 4

foreach($sport_level_name_arr as $key => $value) {

  if(in_array($value, $bad_words)) {  
    unset($sport_level_name_arr[$key])
  }

}
Run Code Online (Sandbox Code Playgroud)