Quel est l'élément de mon tabl ki contient...

Fermé
mathieu_r - 29 juin 2005 à 17:33
 mathieu - 30 juin 2005 à 11:34
bonjour,

jai un probleme en PHP. je ne sais pas [b]comment récupérer le numéro d'un élémént d'un tableau qui contient une chaine de caractères donnée...
[/b]
soit l'exemple:

j'ai un tableau de i éléments, i allant de 1 à 4 qui contient des chaines de caractères:
tableau[1]=gfjhj;
tableau[2]=dfgveloj;
tableau[3]=fdgj;
tableau[4]=fgj;

jaimerais faire une fonction qui me donne le numéro de l'élémént du tableau qui contient la chaine de caractères "velo". elle me renverrait 2 car tableau[2] contient "velo"...
comment faire ça, quels sont les opérateurs sur chaines de caracteres qui permettent de repérer un élément ds une chaine???

merci!!!

4 réponses

Timon1102 Messages postés 354 Date d'inscription jeudi 2 juin 2005 Statut Membre Dernière intervention 30 décembre 2010 109
29 juin 2005 à 17:39
function find($array,$string) {
     $found = false ;
     $i = 0 ;
     while(!$found && $i<count($array)) {
         if(strstr($array[$i],$string)) $found=true ;
         else $i++ ;
     }
    return ($found)?$i:"-1" ;
}


voila...
peut etre que les args de strstr sont inversés je me souviens plus...
retourne -1 si pas trouvé, sinon retourne le PREMIER indice correspondant
0
merci!!

sinon, juste une uestion. je ne comprends pas la syntae ds

return ($found)?$i:"-1" ;

que veut dire le signe '?'
et aussi, je ne vois pas ou on récupère l'indice ds la fonction...

désolé!
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
29 juin 2005 à 23:20
En fait, la combinaison ? : est un opérateur ternaire, ça sert à imposer une valeur ou une autre selon une condition.

Ca fonctionne comme ceci:
$variable= (condition) ? (valeur si vrai) : (valeur si faux)

Exemple:
$variable= (2+2==4) ? "Bidule" : "Truc"
//Comme 2+2 est toujours égal à 4, $variable prendra la valeur "Bidule".

Ca devrait répondre à ta deuxième question en même temps....
0
merci bcp!
0