Maison > Article > développement back-end > Comment filtrer un tableau en PHP comme `LIKE \'%search%\'` de SQL ?
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!