Удалить элемент из массива, если значение элемента содержит искомый символ строки - PullRequest
11 голосов
/ 03 апреля 2012

У меня есть массив, созданный из URL веб-страницы.

Если элемент в этом массиве содержит? символ (символ вопросительного знака), то я хочу удалить этот элемент из массива.

$array = 'news','artical','?mailchimp=1';

Как я мог это сделать? Я видел много примеров, когда искомая строка представляет собой целое значение, но не где его просто один символ или просто часть значения.

Спасибо

Ответы [ 3 ]

18 голосов
/ 03 апреля 2012

http://www.php.net/manual/en/function.array-filter.php

function myFilter($string) {
  return strpos($string, '?') === false;
}

$newArray = array_filter($array, 'myFilter');
11 голосов
/ 03 апреля 2012
foreach($array as $key => $one) {
    if(strpos($one, '?') !== false)
        unset($array[$key]);
}
6 голосов
/ 03 апреля 2012

Используйте закрытие ...

$array = array_filter($array, function($value){
   if (strstr($value, '?') !== false)
   {
      return false;
   }
   return true;
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...