2017-01-09 1 views
1

J'ai un tableau contenant des mots et je veux supprimer les mots qui contiennent soit. (fullstop) ou; (point-virgule) ou d'autres symboles. J'ai lu la solution sur [Remove item from array if item value contains searched string character] mais cela ne semble pas répondre à mon problème.Supprimer un élément du tableau s'il contient une chaîne/un symbole

Que puis-je ajouter à ce code pour supprimer également les mots contenant les autres symboles autres que le point-virgule?

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

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

Merci

+0

Peut-on voir le tableau votre utilisant. – Kitson88

Répondre

2

Utilisez la fonction preg_match:

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

[,.] - classe de caractères qui peut être étendu avec d'autres symboles

+0

Solution agréable et propre. Merci –

+0

@ L.D, je vous en prie – 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);