Aller au contenu

encore pb de tableau...


Dnegel666

Sujets conseillés

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 :D

Lien vers le commentaire
Partager sur d’autres sites

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é par Dnegel666
Lien vers le commentaire
Partager sur d’autres sites

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

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

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...