Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
4841 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Changer d'action en fin de foreach

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Changer d'action en fin de foreach

n°1584312
WiiDS
20 titres en GC, 0 abandon, 0 DQ
Posté le 10-07-2007 à 00:26:46  profilanswer
 

:hello:
 
J'utilise actuellement un foreach sur un array pour récupérer ses valeurs. A chaque foreach se déroule donc une série d'actions. J'aimerais changer un petit truc dans cette série d'actions quand la boucle foreach arrive à la fin de l'array.
 
Comment procéder, le plus proprement (donc pas de solutions a coup de count + incrémentation d'une variable a chaque itération :D) ?
 
Merci d'avance :jap:
 
WiiDS


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
mood
Publicité
Posté le 10-07-2007 à 00:26:46  profilanswer
 

n°1584314
Mara's dad
Yes I can !
Posté le 10-07-2007 à 00:44:20  profilanswer
 

end() ?

n°1584317
WiiDS
20 titres en GC, 0 abandon, 0 DQ
Posté le 10-07-2007 à 00:58:39  profilanswer
 

Je vois pas comment l'exploiter. Surtout que quand je fais
 
foreach($xxx['tableau'] as $yyy)
 
Il m'est impossible d'accéder a $xxx['tableau'] a l'intérieur de ma dite boucle (a confirmer cependant)


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
n°1584326
Profil sup​primé
Posté le 10-07-2007 à 03:01:03  answer
 

tu devrais compter le nombre de fois que tu dois faire la boucle
if($i == ce nombre)
floc l'action change?
 
après je ne vois pas en quoi ce ne serait pas propre ..

Message cité 1 fois
Message édité par Profil supprimé le 10-07-2007 à 03:01:15
n°1584327
WiiDS
20 titres en GC, 0 abandon, 0 DQ
Posté le 10-07-2007 à 03:06:59  profilanswer
 


Non mais stop les astuces de grand mère la :D
 
C'est TRES lent et non, c'est franchement pas propre :/


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
n°1584337
cgo2
Dum spiro spero
Posté le 10-07-2007 à 07:48:11  profilanswer
 

WiiDS a écrit :

Non mais stop les astuces de grand mère la :D


 
Ta grand mère est forte en développement alors, la mienne n'a pas des astuces de cette qualité.
 

WiiDS a écrit :

C'est TRES lent et non, c'est franchement pas propre :/


 
Tu te bases sur quoi pour dire que c'est "TRES lent" ? Je suis curieux de voir les résultats de ton benchmark.
 
Et si ça te plait pas, tu peux parcourir le tableau "à la main" (i.e. sans foreach) en t'arretant avant le dernier élément, puis sortir de la boucle et executer ton action sur le dernier.
 
Tu peux aussi poper le dernier élément, faire ton foreach, et remettre l'élément après.


---------------
When it's from Finland it's good.  - Mon blog
n°1584363
anapajari
s/travail/glanding on hfr/gs;
Posté le 10-07-2007 à 09:18:50  profilanswer
 

Code :
  1. foreach( array_slice($xxx['tableau'],0,-1) as $yyy){
  2. ...
  3. }

n°1584527
Profil sup​primé
Posté le 10-07-2007 à 13:28:40  answer
 

cgo2 a écrit :

la mienne n'a pas des astuces de cette qualité.


thanks  
 
mais la grand-mère d'anapajari connait pas d'astuce elle connait la doc php par coeur  
 

n°1584569
skeye
Posté le 10-07-2007 à 14:10:48  profilanswer
 


cela dit je ne pense pas que créer une copie de ton tableau moins ton dernier élément soit plus rapide que de faire un test sur la valeur de ton indice, hein.[:dawa]
 
Et foreach te permet d'assigner la clé, aussi, pas seulement la valeur, à chaque tour.:o


---------------
Can't buy what I want because it's free -
n°1584596
anapajari
s/travail/glanding on hfr/gs;
Posté le 10-07-2007 à 14:21:17  profilanswer
 

skeye a écrit :

cela dit je ne pense pas que créer une copie de ton tableau moins ton dernier élément soit plus rapide que de faire un test sur la valeur de ton indice, hein.[:dawa]


+1, je repondais seuleument en respectant les contraintes (alakon) du départ.  
Maintenant s'il a un tableau tellement gros que la recopie de celui-ci fait ramer tout l'appli, quelque soit la méthode ça va être la misère :o.
Mais faut être honnête si j'avais eu à faire un truc comme ça, j'aurrais naturellement opté pour:

Code :
  1. for($i=0; $i<count($tableau)-1; $i++){
  2. }


skeye a écrit :

Et foreach te permet d'assigner la clé, aussi, pas seulement la valeur, à chaque tour.:o


Il est possible de préserver les clés via array_slice, c'est l'interet du dernier paramètre ;)
 
 

mood
Publicité
Posté le 10-07-2007 à 14:21:17  profilanswer
 

n°1584600
skeye
Posté le 10-07-2007 à 14:24:18  profilanswer
 

anapajari a écrit :

Mais faut être honnête si j'avais eu à faire un truc comme ça, j'aurrais naturellement opté pour:

Code :
  1. for($i=0; $i<count($tableau)-1; $i++){
  2. }



 
clairement.:D
 

anapajari a écrit :

Il est possible de préserver les clés via array_slice, c'est l'interet du dernier paramètre ;)


 
Je disais ça pour ce post:

WiiDS a écrit :

Je vois pas comment l'exploiter. Surtout que quand je fais
 
foreach($xxx['tableau'] as $yyy)
 
Il m'est impossible d'accéder a $xxx['tableau'] a l'intérieur de ma dite boucle (a confirmer cependant)


---------------
Can't buy what I want because it's free -
n°1584831
Djebel1
Nul professionnel
Posté le 10-07-2007 à 16:04:03  profilanswer
 

anapajari a écrit :


Mais faut être honnête si j'avais eu à faire un truc comme ça, j'aurrais naturellement opté pour:

Code :
  1. for($i=0; $i<count($tableau)-1; $i++){
  2. }




Tiens je me suis toujours dit que dans une telle boucle, il valait mieux compter le nombre d'éléments du tableau avant la boucle. Le count($tableau) n'est-il pas recalculé à chaque itération avec la syntaxe que tu utilises ?

n°1584836
skeye
Posté le 10-07-2007 à 16:06:01  profilanswer
 

Djebel1 a écrit :

Tiens je me suis toujours dit que dans une telle boucle, il valait mieux compter le nombre d'éléments du tableau avant la boucle. Le count($tableau) n'est-il pas recalculé à chaque itération avec la syntaxe que tu utilises ?


si l'interpréteur est très con, oui. Sinon, non. Et en interne les tableaux php stockent leur nombre d'éléments, il me semble, ce qui rend de toute manière l'opération peu couteuse.


---------------
Can't buy what I want because it's free -
n°1584922
WiiDS
20 titres en GC, 0 abandon, 0 DQ
Posté le 10-07-2007 à 17:58:17  profilanswer
 

skeye a écrit :

cela dit je ne pense pas que créer une copie de ton tableau moins ton dernier élément soit plus rapide que de faire un test sur la valeur de ton indice, hein.[:dawa]
 
Et foreach te permet d'assigner la clé, aussi, pas seulement la valeur, à chaque tour.:o


Tiens, c'est pas con ca [:gratgrat]
 
A essayer , merci :jap:


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Changer d'action en fin de foreach

 

Sujets relatifs
comment changer juste un élement d'une page sans tout rechargerChanger d'image en cliquant sur un clip?
[CHMOD] Changer les droits DANS plusieurs dossiers[DEBUTTANT] Eclipse RCP - Listener ou Action ?
Plugin Visual Editor: changer le style de la fenêtre?Changer le path de la librairie standard
changer la couleur d'un texte dynamiqueChanger une balise select en JS
[Mysql] Changer l'ordre des champs d'une tableExecuter une action toute les X secondes
Plus de sujets relatifs à : Changer d'action en fin de foreach


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)