Dans le développement de PHP, nous devons souvent filtrer les éléments dans les tableaux, surtout lorsque nous voulons trouver des éléments de chaîne qui contiennent certains mots clés. À l'heure actuelle, la combinaison de Stripos et Array_Filter est une solution très pratique.
Cet article vous mènera étape par étape pour comprendre comment utiliser les stripos avec array_filter pour implémenter cette fonction.
stripos () est une fonction de chaîne en php qui trouve où une chaîne apparaît d'abord dans une autre chaîne (cas insensible). Renvoie l'emplacement si trouvé (à partir de 0) et renvoie FAUX s'il n'est pas trouvé.
La syntaxe est la suivante:
stripos(string $haystack, string $needle): int|false
Par exemple:
stripos("Hello World", "world"); // retour 6
Array_Filter () est une fonction de PHP utilisée pour filtrer les tableaux par des fonctions de rappel. Il iratera sur chaque élément du tableau et filtrera les éléments qui ne correspondent pas à la valeur de retour de la fonction de rappel.
La syntaxe est la suivante:
array_filter(array $array, ?callable $callback = null, int $mode = 0): array
Jetons un coup d'œil à un exemple pratique: nous avons un tableau contenant plusieurs URL, et nous voulons filtrer tous les éléments contenant un certain mot-clé (comme "connexion".
<?php
$urls = [
"https://m66.net/home",
"https://m66.net/user/login",
"https://m66.net/about",
"https://m66.net/admin/login",
"https://m66.net/contact"
];
$keyword = "login";
$filtered = array_filter($urls, function($url) use ($keyword) {
return stripos($url, $keyword) !== false;
});
print_r($filtered);
Array
(
[1] => https://m66.net/user/login
[3] => https://m66.net/admin/login
)
Comme vous pouvez le voir, seules les URL contenant «connexion» sont conservées.
Si vous souhaitez prendre en charge plusieurs mots clés, vous pouvez légèrement modifier la fonction de rappel:
<?php
$keywords = ["login", "admin"];
$filtered = array_filter($urls, function($url) use ($keywords) {
foreach ($keywords as $word) {
if (stripos($url, $word) !== false) {
return true;
}
}
return false;
});
print_r($filtered);
Cela renverra une URL contenant l'un ou l'autre mot-clé, flexible et puissant.
L'utilisation de stripos avec array_filter est un moyen simple et efficace de gérer la correspondance des mots clés dans les tableaux de chaîne. Il a non seulement du code concis et de la logique claire, mais convient également à une variété de scénarios pratiques, tels que l'analyse des journaux, la correspondance de routage d'URL, le filtrage du contenu, etc.
Vous pouvez encapsuler cette logique en fonction en fonction de vos besoins pour améliorer la réutilisabilité et la maintenabilité.
Si vous êtes intéressé par ce type de compétences pratiques PHP, veuillez suivre plus de conseils de programmation!