Utilisation d'un tableau pour rechercher des chaînes avec strpos
La fonction strpos est couramment utilisée pour localiser la position d'une sous-chaîne dans une chaîne. Cependant, il peut parfois être utile de rechercher plusieurs sous-chaînes simultanément à l'aide d'un tableau d'aiguilles.
Le problème
Malheureusement, l'implémentation standard de strpos ne nous permet pas pour passer une série d'aiguilles. Tenter de le faire, comme le montre l'exemple fourni, entraînera des résultats insatisfaisants.
La solution
Heureusement, une fonction personnalisée peut être créée pour étendre la fonctionnalité de strpos et accueillir des rangées d’aiguilles. L'extrait de code suivant, inspiré des contributions de la communauté PHP, fournit une solution :
function strposa(string $haystack, array $needles, int $offset = 0): bool { foreach($needles as $needle) { if(strpos($haystack, $needle, $offset) !== false) { return true; // stop on first true result } } return false; }
Utilisation
Pour utiliser cette fonction, vous pouvez transmettre la chaîne de botte de foin , le tableau d'aiguilles et un décalage facultatif comme paramètres. Par exemple :
$string = 'This string contains word "cheese" and "tea".'; $array = ['burger', 'melon', 'cheese', 'milk']; var_dump(strposa($string, $array)); // will return true, since "cheese" has been found
Cela recherchera dans la chaîne la présence de l'une des aiguilles du tableau. Si une aiguille est trouvée, la fonction retournera vrai, arrêtant toute itération ultérieure.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!