Maison  >  Article  >  développement back-end  >  Comment obtenir la fonctionnalité SQL LIKE \'%search%\' dans les tableaux PHP ?

Comment obtenir la fonctionnalité SQL LIKE \'%search%\' dans les tableaux PHP ?

DDD
DDDoriginal
2024-11-04 11:02:02546parcourir

How to Achieve SQL LIKE '%search%' Functionality in PHP Arrays?

Filtrage SQL similaire en PHP : renvoi de correspondances avec du texte partiel

Filtrage des valeurs d'un tableau basé sur une recherche de texte partielle, similaire à celle de SQL La requête LIKE '%search%' peut être une tâche essentielle dans de nombreux scénarios de programmation. En PHP, y parvenir à l'aide de tableaux nécessite des techniques spécialisées.

Considérons l'exemple fourni. Étant donné un tableau contenant des noms de couleurs, l'objectif est de renvoyer uniquement les couleurs qui correspondent partiellement au texte saisi par l'utilisateur. Par exemple, avec une entrée de "bl", la sortie attendue serait ["blue", "black"] du tableau d'entrée ["orange", "blue", "green", "red", "pink", "brown", "black"].

Utilisation d'expressions régulières avec preg_grep

Au lieu d'utiliser array_filter avec une fonction lambda personnalisée, une approche plus simple et plus efficace consiste à utilisez la fonction preg_grep. Il combine la puissance des expressions régulières avec le filtrage de tableaux :

<code class="php">$input = preg_quote('bl', '~'); // Quote the input string for use in regex
$data = array('orange', 'blue', 'green', 'red', 'pink', 'brown', 'black');

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

Dans ce code :

  • preg_quote protège la chaîne d'entrée en échappant aux caractères spéciaux tels que ., ? et *.
  • preg_grep utilise le délimiteur PHP ~ pour les regex et le modèle ~' . $entrée . '~ correspond à n'importe quelle chaîne contenant la sous-chaîne d'entrée bl.
  • Le tableau $result résultant ne contiendra que des éléments qui correspondent partiellement à l'entrée, c'est-à-dire bleu et noir.

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