如果在值中找到var,PHP将从数组中删除值

时间:2011-09-12 14:56:57

标签: php arrays

我有一个如下所示的数组:

Array
(
   [0] => aaaaa
   [1] => bbbbb
   [2] => ccxcc
   [3] => ddddd
)

我想删除包含字母x的数组的每个值,所以这就是结果:

Array
(
   [0] => aaaaa
   [1] => bbbbb
   [2] => ddddd
)

我该怎么做?

谢谢!

3 个答案:

答案 0 :(得分:9)

您可以使用array_filter()

$output = array_filter($input, function ($v) { return strpos($v, 'x') === FALSE; });

如果您使用的是PHP< 5.3.0:

function filter_x($v) { 
    return strpos($v, 'x') === FALSE; 
}

$output = array_filter($input, 'filter_x');

答案 1 :(得分:1)

foreach ($array as $k => $v) { // Loop the array
  if (strpos($v,'x') !== FALSE) { // Check if $v has a letter x in it
    unset($array[$k]); // Delete the element
  }
}
array_merge($array); // Put the remaining keys in a contiguous order

答案 2 :(得分:1)

for($i = 0; $i < count($array); $i++) {
    if(strpos($array[$i], 'x') !== false) {
        unset($array[$i]);
    }
}