Maison >développement back-end >Problème PHP >PHP détermine si une chaîne contient des éléments de tableau

PHP détermine si une chaîne contient des éléments de tableau

WBOY
WBOYoriginal
2023-05-23 09:39:07833parcourir

En programmation PHP, il est souvent nécessaire de déterminer si une chaîne contient des éléments dans un tableau. Ce type d'opération est très courant dans le développement réel et est généralement implémenté via des fonctions de chaîne et des fonctions de tableau.

  1. Utilisez la fonction de chaîne strpos

La fonction de chaîne strpos en PHP peut être utilisée pour déterminer si une chaîne contient une autre chaîne. Renvoie l'index de la position contenant si elle est incluse, false sinon.

Exemple de code :

$str = 'hello world';
$needle = 'world';
if (strpos($str, $needle) !== false) {
    echo '包含';
} else {
    echo '不包含';
}

Le résultat de sortie du code ci-dessus est "inclut".

Avec cette méthode, nous pouvons utiliser une boucle foreach pour parcourir chaque élément du tableau, puis trouver l'élément dans la chaîne. Mais il y a un problème avec cette méthode, c'est-à-dire que s'il y a les mêmes éléments dans le tableau, il est impossible de savoir où l'élément apparaît dans la chaîne.

  1. Utiliser les expressions régulières preg_match

Une autre façon consiste à utiliser la fonction d'expression régulière preg_match. Cette fonction est utilisée pour rechercher le contenu d'une chaîne qui correspond à un modèle spécifié. Vous pouvez utiliser des expressions régulières pour concaténer des éléments de tableau dans un modèle correspondant, puis rechercher ce modèle dans une chaîne.

Exemple de code :

$str = 'hello world';
$needle = array('world', 'foo');
$pattern = '/' . implode('|', $needle) . '/';
if (preg_match($pattern, $str, $matches)) {
    echo '包含匹配项:' . $matches[0];
} else {
    echo '不包含';
}

La sortie du code ci-dessus est "Contient des correspondances : monde".

  1. Utilisez la fonction de tableau in_array

La fonction de tableau in_array en PHP peut également être utilisée pour déterminer si une chaîne contient des éléments dans un tableau. Cette fonction permet de vérifier si une valeur existe dans le tableau et renvoie vrai si elle existe, sinon elle renvoie faux.

Exemple de code :

$str = 'hello world';
$needle = array('world', 'foo');
if (in_array($needle, $str)) {
    echo '包含';
} else {
    echo '不包含';
}

Le résultat de sortie du code ci-dessus est "non inclus".

Remarque : Faites attention à l'ordre des paramètres des fonctions in_array et strpos, car leur ordre des paramètres est différent.

Conclusion

Dans le développement réel, les trois méthodes ci-dessus peuvent être utilisées pour déterminer si une chaîne contient des éléments dans un tableau. Les performances et la complexité des différentes méthodes varient et la méthode la plus appropriée peut être sélectionnée en fonction de la situation spécifique. Si vous devez faire correspondre plusieurs éléments d'un tableau, l'expression régulière preg_match est la méthode la plus flexible ; si vous n'avez besoin de juger qu'un seul élément, il sera plus simple et plus efficace d'utiliser la fonction de chaîne strpos ou la fonction de tableau in_array.

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