[PHP] repérer 1er pour traitement - explode()
fabfabou
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
fabfabou Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
fabfabou Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
Bonjour !
Je débute en php et j'ai un petit souci : après un explode() sur un champ qui contient plusieurs personnes, j'ai besoin de repérer la première personne, la traiter d'une certaine manière, et de traiter les suivantes d'une autre façon.
Et je ne sais pas comment faire... quelqu'un peut-il me donner un petit coup de pouce ? Pour que je sache quelle piste suivre ?
Je vous donne les détails (ce sera peut-être plus clair que mon petit résumé du début).
A la base, dans la base de donnée, voici le genre de choses qu'on trouve :
"Nom1, Prénom1 / Nom2, Prénom2, / Nom3, Prénom3"
Et j'ai besoin d'afficher ça :
700 aPrénom1 bNom1
701 aPrénom2 bNom2
701 aPrénom3 bNom3
Donc pour le moment, j'ai un script qui sépare les différentes personnes (une personne = prénom + nom), dit quel élément est le prénom, quel élément est le nom.
Et qui obtient :
700 aPrénom1 bNom1
700 aPrénom2 bNom2
700 aPrénom3 bNom3
Par contre, je ne sais pas dire "écrit 700 puis le premier prénom (précédé d'un "a") et le premier nom (précédé d'un "b"), et ensuite, écrit 701 et le prénom et le nom et suivants (précédés d'un "a" ou d'un "b" comme ci-dessus), et pareil pour tous ceux qui suivent : 701 aPrénom bNom."
Je reprends le code de quelqu'un d'autre, et voici ce qu'il avait fait :
Quelqu'un peut-il éclairer ma lanterne ? En tout cas, merci par avance à tous ceux qui m'aideront !
Je débute en php et j'ai un petit souci : après un explode() sur un champ qui contient plusieurs personnes, j'ai besoin de repérer la première personne, la traiter d'une certaine manière, et de traiter les suivantes d'une autre façon.
Et je ne sais pas comment faire... quelqu'un peut-il me donner un petit coup de pouce ? Pour que je sache quelle piste suivre ?
Je vous donne les détails (ce sera peut-être plus clair que mon petit résumé du début).
A la base, dans la base de donnée, voici le genre de choses qu'on trouve :
"Nom1, Prénom1 / Nom2, Prénom2, / Nom3, Prénom3"
Et j'ai besoin d'afficher ça :
700 aPrénom1 bNom1
701 aPrénom2 bNom2
701 aPrénom3 bNom3
Donc pour le moment, j'ai un script qui sépare les différentes personnes (une personne = prénom + nom), dit quel élément est le prénom, quel élément est le nom.
Et qui obtient :
700 aPrénom1 bNom1
700 aPrénom2 bNom2
700 aPrénom3 bNom3
Par contre, je ne sais pas dire "écrit 700 puis le premier prénom (précédé d'un "a") et le premier nom (précédé d'un "b"), et ensuite, écrit 701 et le prénom et le nom et suivants (précédés d'un "a" ou d'un "b" comme ci-dessus), et pareil pour tous ceux qui suivent : 701 aPrénom bNom."
Je reprends le code de quelqu'un d'autre, et voici ce qu'il avait fait :
$tableau_personnes = array(); /*Recup des personnes*/ $personnes = explode(' / ', $interprete); /*Séparation nom/prénom*/ foreach($personnes as $personne) { if(!ereg(",", $personne)) { $nom = $personne; $prenom =""; array_push($tableau_personnes, $nom, $prenom); } else { $decompo = explode(',', $personne); array_push($tableau_personnes, $nom = $decompo[0], $prenom = $decompo[1]); } $listeinterprete = "701 a".$nom." b".$prenom; $listeinterprete2 = $listeinterprete2.print_r($listeinterprete, true); }
Quelqu'un peut-il éclairer ma lanterne ? En tout cas, merci par avance à tous ceux qui m'aideront !
A voir également:
- [PHP] repérer 1er pour traitement - explode()
- Reconsidérer le traitement de vos informations à des fins publicitaires - Accueil - Réseaux sociaux
- Traitement de texte gratuit - Guide
- Easy php - Télécharger - Divers Web & Internet
- Ce traitement de texte gratuit et léger est parfait pour remplacer Word, même sur un vieux PC - Guide
- Traitement de texte gratuit open office - Télécharger - Suite bureautique
3 réponses
Je ne sais pas si j'ai bien compris ce que tu souhaite, mais je fais comme si tu voulais afficher apres coup ton tableau.
Tu peux ensuite adapter pour faire d'autre traitement que d'afficher les valeur prénom et nom des personnes du tableau.
Voici les qq lignes qui te permettront de le faire :
Bon courage pour la suite si j'ai répondu à ton probleme, sinon fais nous part du réel pb ^^
Tu peux ensuite adapter pour faire d'autre traitement que d'afficher les valeur prénom et nom des personnes du tableau.
Voici les qq lignes qui te permettront de le faire :
// --- Traitement du tableau deux cases par deux cases // --- Puisque le tableau est de la forme suivante : [prenom1,nom1 // --- ,prenom2, nom2, ...] for ($i=0; $i < sizeof($tableau_personnes); $i+=2 ){ // --- Si premiere personne -> affiche 700 if ( $i==0 ) echo '<BR>700 a'.$tableau_personnes[$i].' b'.$tableau_personnes[$i+1]; // --- Sinon affiche 701 else echo '<BR>701 a'.$tableau_personnes[$i].' b'.$tableau_personnes[$i+1]; }
Bon courage pour la suite si j'ai répondu à ton probleme, sinon fais nous part du réel pb ^^
J'avais pensé à ce genre de chose, que j'avais vu ailleurs sur une autre page du site rattaché à ma base de donnée, mais je n'étais arrivée à rien : je ne suis pas assez familiarisée avec les for, les $i et les tableaux (eh oui, je débute), et je n'ai pas réussi à m'en dépêtrer.
Je vais essayer ça, ça m'a tout l'air de bien correspondre à ce que je veux faire ! Merci merci beaucoup, je te tiens au courant !
Je vais essayer ça, ça m'a tout l'air de bien correspondre à ce que je veux faire ! Merci merci beaucoup, je te tiens au courant !
Après avoir inséré ce code dans le mien, il y a du mieux !
J'obtiens :
700 aNomint1 b Prénomint1
700 aNomint1 b Prénomint1
701 aNomint2 b Prénomint2
700 aNomint1 b Prénomint1
701 aNomint2 b Prénomint2
701 aNomint3 b Prénomint3
(Dans la base de données, j'ai mis ceci pour tester :
Nomint1, Prénomint1 / Nomint2, Prénomint2 / Nomint3, Prénomint3)
Cela se rapproche de ce que je cherche, mais en fait, je voudrais ceci :
700 aNomint1 bPrénomint1
701 aNomint2 bPrénomint2
701 aNomint3 bPrénomint3
Voici le code :
Que faut-il faire ?
Merci !
J'obtiens :
700 aNomint1 b Prénomint1
700 aNomint1 b Prénomint1
701 aNomint2 b Prénomint2
700 aNomint1 b Prénomint1
701 aNomint2 b Prénomint2
701 aNomint3 b Prénomint3
(Dans la base de données, j'ai mis ceci pour tester :
Nomint1, Prénomint1 / Nomint2, Prénomint2 / Nomint3, Prénomint3)
Cela se rapproche de ce que je cherche, mais en fait, je voudrais ceci :
700 aNomint1 bPrénomint1
701 aNomint2 bPrénomint2
701 aNomint3 bPrénomint3
Voici le code :
$tableau_personnes = array(); /*Recup des personnes*/ $personnes = explode(' / ', $interprete); /*Séparation nom/prénom*/ foreach($personnes as $personne) { if(!ereg(",", $personne)) { $nom = $personne; $prenom =""; array_push($tableau_personnes, $nom, $prenom); } else { $decompo = explode(',', $personne); array_push($tableau_personnes, $nom = $decompo[0], $prenom = $decompo[1]); // --- Traitement du tableau deux cases par deux cases // --- Puisque le tableau est de la forme suivante : [prenom1,nom1 // --- ,prenom2, nom2, ...] for ($i=0; $i < sizeof($tableau_personnes); $i+=2 ) { // --- Si premiere personne -> affiche 700 if ( $i==0 ) echo '<BR>700 a'.$tableau_personnes[$i].' b'.$tableau_personnes[$i+1]; // --- Sinon affiche 701 else echo '<BR>701 a'.$tableau_personnes[$i].' b'.$tableau_personnes[$i+1]; } }
Que faut-il faire ?
Merci !