8791 sujets

Développement web côté serveur, CMS

Bonjour à tous,

On me demande dans un exercice la chose suivante :

Soit le tableau php : $liste = array("Patrick Nollet/nono/jjjj", "Sophie Fonfec/fonfec/ssss", "Yves AdrouilleToultan/adrouille/yyyy");
Transformer ce tableau en 3 tableaux nommés $nom, $code, $pass à l'aide de la fonction explode.

Mais je galère et ne comprend pas bien du tout ce que notre prof nous a expliqué sur la fonction explode : array explode ( string separator , string string , int limit )
explode retourne un tableau de chaînes. Ce sont les sous-chaînes extraites de string , en utilisant le
séparateur separator . Si limit est fourni, le tableau retourné aura un maximum de limit éléments, et le
dernier élément du tableau contiendra le reste de la chaîne string .


Je suis d'ores et déjà allé voir sur php.net mais ils ne présentent pas la chose de la même façon... je suis un poil perdu je dois avouer!
Un peu d'aide aussi minime soit-elle sera grandement appréciée Smiley lol
Merci d'avance,

Florian
Modifié par nwhy (15 Nov 2011 - 12:41)
Salut,

Explode coupe ta chaîne en tableau grâce à un séparateur. Dans ta chaîne, le "/".
Il suffit donc de réaliser une boucle (foreach) sur ton tableau d'origine, puis un explode sur chaque donnée retourner, et enfin les enregistrer dans les tableaux que tu souhaites (nom, etc/). ^^

Bon courage =)
Ah, donc mon intuition première était la bonne!
C'est ce que j'ai d'abord pensé...
donc comme ça c'est bon?
foreach($liste as $nom/$code/$pass){
explode(

Je comprends plus rien :S

Merci à toi, ce sont mes premiers pas en PHP, les balbutiements quoi =P et ça fait du bien de se savoir soutenu!
Hello, voilà ce que tu veux faire :


//Déclaration des variables
$nom=array();
$code=array();
$pass=array();
$liste = array("Patrick Nollet/nono/jjjj", "Sophie Fonfec/fonfec/ssss", "Yves AdrouilleToultan/adrouille/yyyy");
$taille=sizeof($liste);//Taille du tableau $liste

for($i=0;$i<$taille;$i++){
	list($nom[],$code[],$pass[])=explode('/',$liste[$i],3); 
}

//Affichage des résultats
echo "<pre>on a: ";print_r($nom);echo "</pre>";
echo "<pre>on a: ";print_r($code);echo "</pre>";
echo "<pre>on a: ";print_r($pass);echo "</pre>";


Quelques explications:
Le 3ème paramètre d'explode est optionnel, en laissant ce champ vide, la fonction sépare la chaine jusqu'à ce qu'il n'y ait plus de marqueur trouvé. Je t'invite à modifier cette valeur par 2 et 1 pour voir son comportement.

La fonction list permet de stocker tes n résultats dans une variable.


Pour le foreach, renseigne toi sur sa manière de l'utiliser (http://fr2.php.net/manual/fr/control-structures.foreach.php )

Grosso modo c'est comme ça:

foreach($tab as $assoc=>$value){
  //Traitements
}


$assoc récupère le nom de l'association (dans ton cas ce sera 0 car $liste est un tableau indicé) et $value récupère $tab[0] , càd la valeur stockée dans l'indice 0 de ton tableau.