Chaine contient le début d'un mot

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Chaine contient le début d'un mot

Re: Chaine contient le début d'un mot

par finipe » 07 mai 2016, 15:19

J'aurais fait un truc dans ce genre là :

Code : Tout sélectionner

<?php $entry = 'VMSFG'; $refs = array('VMS451F', 'VMS498D', 'F451FDD', 'D3547D1', 'G654D51'); $results = array(); foreach($refs as $ref) { if (substr($ref, 0, 3) == substr($entry, 0, 3)) { $results[] = $ref; } } print_r($results);
Après, pour une recherche non limitative aux 3 premiers caractères, il faudrait utiliser preg_match avec un filtre adapté.

Chaine contient le début d'un mot

par chaipaskoa » 07 mai 2016, 04:15

Bonjour à tous,

J'ai deux variables. Une variable $entry qui contient ce que a tapé l'utilisateur dans le champs de recherche et une variable $refs qui contient un tableau de référence.

Le but du jeu est de ressortir les références qui correspondent à $entry, ce que j'ai fait dans le foreach. Cela fonctionne. Néanmoins, cela doit aussi pouvoir gérer le cas où l'utilisateur à bien tapé le début d'une ou de plusieurs références. Par exemple à l'heure actuelle si je tape "VMS" cela me ressort bien les deux références 'VMS451F', 'VMS498D' or je voudrai aussi qu'en tapant "VMSFS" il me ressorte aussi ces deux références étant donné que le début de la recherche est correct et que l'utilisateur s'est juste trompé sur la fin.

Le plus drôle dans tout ça est que j'avais réussi à le faire en deux ou trois lignes il y a deux semaines et que j'ai malencontreusement perdu le fichier. J'ose espérer que quelqu'un saura m'ouvrir les yeux :)
<?php


$entry = 'VMSFG';

$refs = [
	'VMS451F',
	'VMS498D',
	'F451FDD',
	'D3547D1',
	'G654D51'
];


$results = [];

foreach($refs as $ref) {
	if (strpos($ref, $entry) !== false) {
		$results[] = $ref;
	} 

        // Ici, le code de ce que je cherche
	
}


print_r($results);

Merci par avance pour votre aide :D