PHP - chaine + split
Résolu
wapette21
Messages postés
66
Date d'inscription
Statut
Membre
Dernière intervention
-
wapette21 Messages postés 66 Date d'inscription Statut Membre Dernière intervention -
wapette21 Messages postés 66 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un petit problème a l'utilisation de split :
j'ai une chaine type : $chaine="toto 2 tata, tutu 1 test,"
Je souhaite récuperer chaque mot ou nombre séparemant je comment :
Mon premier split sépare bien les expresion a chaque "," mais le seconde ne marche pas du tout j'ai voulou utilisé str_replace croyant que cela venait des espace mais pas mieux mon tableau contient aucune donné.
Avez vous une idée ?
Merci
J'ai un petit problème a l'utilisation de split :
j'ai une chaine type : $chaine="toto 2 tata, tutu 1 test,"
Je souhaite récuperer chaque mot ou nombre séparemant je comment :
//Traitement des statisques des joueur $string = split(',', $chaine); $taille=sizeof($string); $i="1"; while( $i < $taille ) { $stat=$string["$i"]; $chaine = split(' ', $stats); $a=$chaine[1]; $b=$chaine[2]; $c=$chaine[3]; }
Mon premier split sépare bien les expresion a chaque "," mais le seconde ne marche pas du tout j'ai voulou utilisé str_replace croyant que cela venait des espace mais pas mieux mon tableau contient aucune donné.
Avez vous une idée ?
Merci
A voir également:
- PHP - chaine + split
- Split cam - Télécharger - Messagerie
- Chaine tnt gratuite sur mobile - Guide
- Chaine radio - Télécharger - Médias et Actualité
- Easy php - Télécharger - Divers Web & Internet
- Plus de chaine tv - Guide
11 réponses
Hello,
j'ai envie de dire que c'est une bête faute de frappe, mais ça va peut-être plus loin :P
-> Je ne comprends pas à quoi sert ton while. Il manque une instruction pour modifier $i ? Dans ce cas, une boucle for ne serait-elle pas plus adaptée ?
-> Tu réutilises la variable $chaine. Ce n'est pas une erreur, mais une belle source de confusions. Surtout quand tu reprends ton code après quelques jours de pause ! On n'est vraiment pas à une variable près, autant bien clarifier les choses.
-> Que vois-je ici ? o_O
j'ai envie de dire que c'est une bête faute de frappe, mais ça va peut-être plus loin :P
-> Je ne comprends pas à quoi sert ton while. Il manque une instruction pour modifier $i ? Dans ce cas, une boucle for ne serait-elle pas plus adaptée ?
-> Tu réutilises la variable $chaine. Ce n'est pas une erreur, mais une belle source de confusions. Surtout quand tu reprends ton code après quelques jours de pause ! On n'est vraiment pas à une variable près, autant bien clarifier les choses.
-> Que vois-je ici ? o_O
$stat=$string["$i"];
$chaine = split(' ', $stats);
^
Bref, voilà ;)
Effectivement je suis tromper en ré-écrivant mon code mais ma source est bonne ;-) (le nom de variable stat et le $i++ pour le while)
j'ai le message suivante en faite :
Notice: Undefined offset: 1 in line 42
Notice: Undefined offset: 2 in line 43
Notice: Undefined offset: 3 in line 44
ce qui correspond a mes :
$a=$chaine[1];
$b=$chaine[2];
$c=$chaine[3];
J'ai enlever les guillemets sans succès.
J'ai l'impression que le problème viens de la boucle, je réutilise la même variable $chaine car les action après son lié insertion en bdd, j'ai pas penser faire autrement pour être franc :-)
j'ai le message suivante en faite :
Notice: Undefined offset: 1 in line 42
Notice: Undefined offset: 2 in line 43
Notice: Undefined offset: 3 in line 44
ce qui correspond a mes :
$a=$chaine[1];
$b=$chaine[2];
$c=$chaine[3];
J'ai enlever les guillemets sans succès.
J'ai l'impression que le problème viens de la boucle, je réutilise la même variable $chaine car les action après son lié insertion en bdd, j'ai pas penser faire autrement pour être franc :-)
salut biboo_,
Je suis débutant et je fais plein d'erreur et surement des usine a gaz pour rien mais que me propose tu ?
a+
Je suis débutant et je fais plein d'erreur et surement des usine a gaz pour rien mais que me propose tu ?
a+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Non c'est pas mal, c'est juste certaines pratiques à.. régulariser. :)
Genre si tu fais $i++, $i est un entier, donc déclare-le en entier et non en String. ;)
Genre si tu fais $i++, $i est un entier, donc déclare-le en entier et non en String. ;)
Oki je corrige ce point, j'avais pas fait attention ;-), je viens de faire un test sans faire une boucle sur un seul cas et ça marche est-il déconseiller d'utiliser split dans une boucle ?
Je viens de test avec une boucle for et toujours pas mieux :
$string = split(',', $chaine); $taille=sizeof($string); for($i=0;$i < $taille;$i++) { $stat=$string["$i"]; $chaine = split(' ', $stats); $a=$chaine[1]; $b=$chaine[2]; $c=$chaine[3]; }
Essaie ça :
Tu en fais quoi de tes variables $a $b $c après?
$string = split(',', $chaine); $taille=sizeof($string); $chaine = array(); for($i=0;$i < $taille;$i++) { $stat=$string[$i]; $chaine = split(' ', $stats); $a=$chaine[1]; $b=$chaine[2]; $c=$chaine[3]; }
Tu en fais quoi de tes variables $a $b $c après?
Il y a du mieux au niveau boucle je vois apparaitre chaque traitement qui est fait par contre toujours la même erreur sur le deuxième split ma chaine est vide
quand je vais un echo de $chaine j'ai "Array".
quand je vais un echo de $chaine j'ai "Array".
Re !
(http://fr2.php.net/manual/fr/function.split.php)
Split appelle un moteur de regexp pour faire son traitement, tu n’en as pas besoin ici. Essaye plutôt explode.
Et pour le code, j’avais pas trop le temps tout à l’heure mais je reviens à la charge avec cette version :
(http://fr2.php.net/manual/fr/function.split.php)
Split appelle un moteur de regexp pour faire son traitement, tu n’en as pas besoin ici. Essaye plutôt explode.
Et pour le code, j’avais pas trop le temps tout à l’heure mais je reviens à la charge avec cette version :
$string = explode(',', $chaine); $taille = sizeof($string); for ($i=0; $i<$taille; $i++) { $stat = $string[$i]; $mots = explode(' ', $stat); // nouvelle variable $a = $mots[0]; // le 1er index d’un tableau est 0 ! $b = $mots[1]; $c = $mots[2]; /* * traitement de $a, $b et $c * … */ }