Maison >développement back-end >tutoriel php >Comment rechercher efficacement plusieurs modèles dans une chaîne à l'aide d'un tableau en PHP ?

Comment rechercher efficacement plusieurs modèles dans une chaîne à l'aide d'un tableau en PHP ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-25 17:05:16469parcourir

How to Efficiently Search a String for Multiple Patterns Using an Array in PHP?

Comment rechercher plusieurs modèles dans une chaîne à l'aide d'un tableau

La fonction strpos est un outil puissant pour rechercher une sous-chaîne spécifique dans un chaîne. Cependant, il ne peut rechercher qu’un seul modèle à la fois. Que se passe-t-il si vous devez vérifier si une chaîne contient l'un des éléments d'une liste de modèles ?

Considérez l'exemple suivant :

$find_letters = ['a', 'c', 'd'];
$string = 'abcdefg';

Si nous essayons de rechercher dans la chaîne le tableau de lettres en utilisant strpos, ça ne marchera pas. En effet, strpos attend une chaîne comme deuxième argument, pas un tableau.

Création d'une fonction pour la recherche de tableau avec strpos

Pour résoudre ce problème, nous pouvons créer une fonction personnalisée qui accepte un tableau de modèles et une chaîne à rechercher. La fonction parcourra le tableau, appelant strpos pour chaque modèle et renverra la position de la première correspondance trouvée :

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;
}

Cette fonction peut être utilisée comme suit :

$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

Conclusion

En créant une fonction personnalisée qui enveloppe la fonctionnalité strpos, nous pouvons désormais rechercher efficacement dans une chaîne plusieurs modèles à l'aide d'un tableau. Cette technique peut être utile dans divers scénarios, tels que la validation d'une saisie utilisateur ou l'analyse de texte.

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