2017-01-09 3 views
1

У меня есть массив, содержащий несколько слов, и я хочу удалить слова, содержащие либо. (fullstop) или; (точка с запятой) или некоторые другие символы. Я прочитал решение на [Remove item from array if item value contains searched string character], но это не похоже на мою проблему.Удалить элемент из массива, если содержит строку/символ

Что я могу добавить в этот код, чтобы удалить также слова, содержащие другие символы, отличные от точки с запятой?

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

$newArray = array_filter($array, 'myFilter'); 

Благодаря

+0

Можем ли мы увидеть массив вашей помощью. – Kitson88

ответ

2

Использование preg_match функции:

function myFilter($string) { 
    return !preg_match("/[,.]/", $string); 
} 

[,.] - класс символов, которые могут быть расширены с любыми другими символами

+0

Хорошее и чистое решение. Спасибо –

+0

@ L.D, добро пожаловать – RomanPerekhrest

1
// $array is your initial array 
$newArray = array(); 
foreach ($array as $item){ 
    if ((strpos($item, ';') > 0)||(strpos($item, '.') > 0)) 
     continue; 
    $newArray[] = $item; 
} 

// Words with ; or . should be filtered out in newArray 
print_r($newArray); 
Смежные вопросы