Dnegel666 Posté 5 Juillet 2005 Partager Posté 5 Juillet 2005 Bonjour, J'ai un tableau du style Array(0 -> "abcdef", 1 -> "bcdefg", 2-> "cdefgh"...) en gros, je voudrais savoir s'il est possible de savoir combien de fois se trouve la chaine "bcdef" dans ce tableau. Là, elle est présente 2 fois... (dans 0 et dans 1), dans 2 sections et dans "un mot". Merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
Ganf Posté 5 Juillet 2005 Partager Posté 5 Juillet 2005 function countItem($tab, $search) { $found = 0 ; foreach($tab as $value) if ($value==$search) ++$found ; return $found ; } Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dnegel666 Posté 5 Juillet 2005 Auteur Partager Posté 5 Juillet 2005 (modifié) Oui, mais non car ça, c'est valide seulement si $value est strictement = à $search, hors, moi, elle est dans un mot... et si je me sert d'ergi(), il ne me dira rien de plus que TRUE s'il y a 1 $value, il faudrait faire une boucle, mais il faudrait un paramètre de limitation, et je ne vois pa lequel ! Modifié 5 Juillet 2005 par Dnegel666 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Ganf Posté 5 Juillet 2005 Partager Posté 5 Juillet 2005 Soit je n'ai pas compris soit tu n'as pas cherché très loin à partir de ce que je t'ai donné. Si tu veux compter comme 2 quand une chaîne apparait deux fois dans le même item de tableau : function countItem($tab, $search) { $found = 0 ; foreach($tab as $value) $found += substr_count($value,$search) ; return $found ; } Si tu ne veux qu'une occurence par item : function countItem($tab, $search) { $found = 0 ; foreach($tab as $value) if (strpos($value,$search)!==FALSE) ++$found ; return $found ; } Lien vers le commentaire Partager sur d’autres sites More sharing options...
enroc Posté 5 Juillet 2005 Partager Posté 5 Juillet 2005 http://php.net/array pour les fonctions sur les tableaux http://de2.php.net/regex pour les expressions régulières POSIX http://php.net/pcre pour les expressions régulières compatible Perl De plus si ce tableau provient d'une requête SQL, fais plutôt : SELECT 'champ1' WHERE 'champ2' LIKE '%cdef%'; Ca récuperera "abcdefg", 'abcdef', 'cdefgd' ... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dnegel666 Posté 5 Juillet 2005 Auteur Partager Posté 5 Juillet 2005 Ganf, ta 2ème solution été bonne, merci. et enroc, non, cela ne provient pas d'une requête. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant