Maison >développement back-end >tutoriel php >Comment puis-je vérifier efficacement plusieurs sous-chaînes dans une chaîne PHP ?
En PHP, strpos est une fonction couramment utilisée pour rechercher la première occurrence d'une sous-chaîne dans une chaîne donnée. Bien qu'il soit capable de trouver une seule sous-chaîne, il peut y avoir des situations dans lesquelles vous devrez rechercher plusieurs sous-chaînes simultanément.
Dans votre exemple spécifique, vous souhaitez vérifier si tous les éléments du tableau $find_letters existent dans la variable $string. Cependant, transmettre directement un tableau comme aiguille à strpos ne fonctionnera pas car il attend une valeur unique.
Pour résoudre ce problème, vous pouvez utiliser une fonction personnalisée qui effectue la tâche dont vous avez besoin. Voici une version mise à jour de la fonction fournie comme réponse :
function strposa(string $haystack, array $needles, int $offset = 0): bool { foreach ($needles as $needle) { if (strpos($haystack, $needle, $offset) !== false) { return true; // Stop on the first true result } } return false; }
Dans cette fonction, nous parcourons chaque élément du tableau $needles. Pour chaque élément, nous utilisons strpos pour vérifier s'il existe dans la chaîne $haystack, en commençant à la position $offset spécifiée. Si l'un des éléments correspond, nous renvoyons true immédiatement, indiquant que la recherche est réussie.
Exemple d'utilisation :
$string = 'This string contains word "cheese" and "tea".'; $array = ['burger', 'melon', 'cheese', 'milk']; if (strposa($string, $array)) { echo 'true'; } else { echo 'false'; }
Sortie :
true
Dans ce Par exemple, la fonction renvoie vrai car la chaîne contient l'un des éléments du tableau, à savoir "cheese".
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!