Maison  >  Article  >  développement back-end  >  Comment filtrer un tableau en PHP comme `LIKE \'%search%\'` de SQL ?

Comment filtrer un tableau en PHP comme `LIKE \'%search%\'` de SQL ?

DDD
DDDoriginal
2024-11-04 03:19:31698parcourir

How to Filter an Array in PHP Like SQL's `LIKE '%search%'`?

Filtrage des valeurs d'un tableau similaire à SQL LIKE '%search%'

La conception d'un champ de saisie semi-automatique à l'aide de JQueryUI pose un défi lorsqu'il s'agit pour filtrer les valeurs d'un tableau en fonction de l'entrée de l'utilisateur. Considérons un tableau contenant des couleurs : ['orange', 'bleu', 'vert', 'rouge', 'rose', 'marron', 'noir']. Si l'utilisateur tape « bl », le résultat souhaité serait ['blue', 'black'].

Pour y parvenir, on pourrait envisager d'utiliser array_diff(), mais une approche plus appropriée existe : preg_grep. Cette fonction combine des expressions régulières avec le filtrage, ce qui la rend idéale pour la tâche à accomplir.

Implémentation à l'aide de preg_grep :

<code class="php">$input = preg_quote('bl', '~'); // Don't forget to quote the input string
$data = array('orange', 'blue', 'green', 'red', 'pink', 'brown', 'black');

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

Dans ce code, preg_quote est utilisé pour échapper aux caractères spéciaux dans la chaîne d'entrée. L'expression régulière '~w ~' correspond à n'importe quel mot (une ou plusieurs lettres) contenant la chaîne saisie. preg_grep applique ensuite ce filtre au tableau de données, ce qui donne les correspondances souhaitées.

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