Position actuelle: Accueil> Derniers articles> Utilisez des stripos + array_filter pour filtrer les éléments du tableau contenant des mots spécifiés

Utilisez des stripos + array_filter pour filtrer les éléments du tableau contenant des mots spécifiés

M66 2025-05-31

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.

Qu'est-ce que Stripos?

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

Qu'est-ce que Array_Filter?

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

Stripos + Array_Filter Combinaison

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".

Exemple de code:

 <?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);

Résultat de sortie:

 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.

Extension flexible: prends en charge plusieurs mots clés

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.

Conclusion

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!