Problème EXPLODE/IMPLODE

KORGGER
Invité n'ayant pas de compte PHPfrance

08 déc. 2011, 18:35

Bonjour à tous;

Je suis un grand débutant en php et depuis quelque jours je n'arrive pas à trouver pars moi même la solution à mon problème.
C'est pourquoi je viens vous poser ma question:
...
$donnee= explode("||",$Text); 

$X1= $donnee[1];
$X2= $donnee[2];
$X3= $donnee[3];
$X4= $donnee[4];
$X5= $donnee[5];

echo $X1;//Affiche: "34" Ok pas de problème 
echo $X2;//Affiche: "25" Ok pas de problème
echo $X3;//Affiche: "25097 6807 6806858" // A partir du segment [3] je peux obtenir une valeur contenant 1,2 ou 3 chiffres séparé par un espace ou une valeur nulle
echo $X4;//Affiche: "21217 686858" 
echo $X5;//Affiche: "6860008"
Mon problème ce pose à partir du segment [3];
j'aimerai additionner les chiffres que contient chaque segment et si la valeur est nulle la remplacer par un 0.
J'ai essayer de bidouiller avec la fonction "implode" sans résultats... bref, après plusieurs essai je perd patience 8-|
Si j'utilise un mauvais vocabulaire merci de me le préciser.
J'attends une réponse simple ou bien expliqué car sinon sa ne va pas trop m'avancer :?

Merci à tous :D

Mammouth du PHP | 1967 Messages

08 déc. 2011, 19:56

Qu'as tu mis dans ta variable $Text ? sans elle on ne pourra pas t'aider

donne nous également le résultat de var_dump($Text); placé juste avant ton explode()
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

KORGGER
Invité n'ayant pas de compte PHPfrance

08 déc. 2011, 20:14

echo $Text;
||34
||25
||
||
|| 25097 6807 6806858
|| 21217 686858
|| 6860008
||
|| 435
||
|| 57488
|| 18290
||
||
|| 15679
|| 10321
|| 304
||
||
||
var_dump($Text);
string '

</br>||34 </br>||25

</br>||</br>||</br>|| 25097 6807 6806858

</br>||</br>|| 21217 686858

</br>||</br>|| 6860008

</br>||</br>|| 57488

</br>|| 18290

</br>||

</br>||

</br>|| 15679

</br>|| 10321

</br>|| 304

</br>||

</br>||

</br>|| ' (length=272)
Voila j'espère avoir répondu à ta demande
Merci de m'aider

KORGGER
Invité n'ayant pas de compte PHPfrance

08 déc. 2011, 20:17

j'utilise en faite:
$X1= $donnee[1];
$X2= $donnee[2];
$X3= $donnee[5];
$X4= $donnee[7];
$X5= $donnee[9];
Je n'ai pas encore écrit le reste des segments je fesai des tests sur les premiers

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

08 déc. 2011, 21:07

Salut,

Les <br /> sont dans ta chaîne à la base ?
Si oui un striptags s'impose avant tout.
Après ton utilisation est correct, le seul truc qui te manque c'est de tester si ton élément est un chiffre ou pas (ou s'il contient un espace) par exemple avec is_numeric.
Si tel est le cas il faut que tu re fasse un explode sur l'espace, puis tu boucle sur le tableau resultat et re test sur le chiffre si positif addition.


@+
Il en faut peu pour être heureux ......

KORGGER
Invité n'ayant pas de compte PHPfrance

09 déc. 2011, 02:03

Merci Spols grace à la fonction var dump() j'ai trouvé la solution il s'agissait de caractères de tabulation qui n'apparaissait pas avec echo ou print et qui venait pourrir mon explode.
Merci également à moogli striptags je garde :D

S'étais la première fois que je demandais de l'aide sur un forum! Et maintenant je sais ou revenir =D>