Maison >développement back-end >tutoriel php >Comment puis-je vérifier efficacement plusieurs sous-chaînes dans une chaîne PHP ?

Comment puis-je vérifier efficacement plusieurs sous-chaînes dans une chaîne PHP ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-27 13:17:16774parcourir

How Can I Efficiently Check for Multiple Substrings in a PHP String?

Recherche de plusieurs sous-chaînes à l'aide de strpos et de tableaux

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn