Maison  >  Article  >  développement back-end  >  Comment filtrer les valeurs d'un tableau comme SQL LIKE \'%search%\' à l'aide de PHP ?

Comment filtrer les valeurs d'un tableau comme SQL LIKE \'%search%\' à l'aide de PHP ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-04 04:32:29770parcourir

How to Filter Array Values Like SQL LIKE '%search%' Using PHP?

Filtrage des valeurs de tableau comme SQL LIKE '%search%' à l'aide de PHP

Pour implémenter une fonctionnalité de saisie semi-automatique à l'aide de JQueryUI, récupérer les correspondances alphabétiques d'un un tableau basé sur les entrées de l’utilisateur est essentiel. Considérons un tableau ["orange", "bleu", "vert", "rouge", "rose", "marron", "noir"]. Si l'utilisateur saisit "bl", vous souhaitez afficher uniquement ["blue", "black"].

Au lieu d'utiliser array_filter avec une fonction personnalisée, une solution plus efficace consiste à utiliser la fonction preg_grep, qui permet de filtrer à l'aide d'expressions régulières.

Exemple :

<code class="php">$input = preg_quote('bl', '~'); // Protect against regex special characters
$data = array('orange', 'blue', 'green', 'red', 'pink', 'brown', 'black');

$result = preg_grep('~' . $input . '~', $data);

print_r($result); // Output: Array ( [0] => blue [1] => black )</code>

Explication :

  • preg_quote(' bl', '~') échappe les caractères spéciaux dans la chaîne d'entrée, garantissant qu'ils sont traités littéralement dans l'expression régulière.
  • L'expression régulière ~ . $entrée . ~ recherche les éléments du tableau qui contiennent la chaîne d'entrée "bl" n'importe où dans la valeur.
  • preg_grep applique ce filtre d'expression régulière au tableau $data, renvoyant un tableau contenant uniquement les correspondances qui satisfont à la condition.

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