Maison  >  Article  >  développement back-end  >  Comment puis-je filtrer un tableau en PHP en utilisant un modèle similaire à l'opérateur LIKE de SQL ?

Comment puis-je filtrer un tableau en PHP en utilisant un modèle similaire à l'opérateur LIKE de SQL ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-03 20:39:02712parcourir

How Can I Filter an Array in PHP Using a Pattern Similar to SQL's LIKE Operator?

Filtrage des valeurs d'un tableau à l'aide de SQL LIKE '%search%' en PHP

Pour filtrer les valeurs d'un tableau en fonction de l'entrée utilisateur qui correspond à un modèle spécifié, vous peut exploiter la puissante fonction preg_grep de PHP en conjonction avec des expressions régulières.

Considérez l'exemple suivant, où $data est un tableau contenant couleurs :

<code class="php"><?php
$data = array('orange', 'blue', 'green', 'red', 'pink', 'brown', 'black');</code>

Pour rechercher des correspondances en fonction de la saisie de l'utilisateur, que nous représenterons par $input, vous pouvez effectuer ce qui suit :

<code class="php"><?php
$input = 'bl';
$input = preg_quote($input, '~'); // Escape special characters in input

$result = preg_grep('~' . $input . '~', $data);</code>

Dans cet exemple, nous citons l'entrée en utilisant preg_quote pour garantir que les caractères spéciaux sont correctement traités. Ensuite, nous utilisons preg_grep avec une expression régulière qui recherche les correspondances de $input dans n'importe quelle partie des éléments du tableau.

Le résultat est un tableau contenant uniquement les éléments suivants :

<code class="php"><?php
array(
    'blue',
    'black',
);</code>

Par en utilisant cette technique, vous pouvez filtrer efficacement les tableaux en fonction des entrées de l'utilisateur, en fournissant une méthode similaire à LIKE '%search%' de SQL. opérateur pour les tableaux PHP.

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