problème avec array_walk

problème avec array_walk - PHP - Programmation

Marsh Posté le 19-07-2005 à 20:13:51    

Bonjour,
 
J'ai 4 cartes(dans cet exemple) dont je veux garder uniquement la couleur(en supprimant la valeur).
Mais ça ne marche pas (ça m'affiche exactement les mêmes valeurs)! Où est l'erreur ?
 

Code :
  1. <?
  2. $playable_cards = array();
  3. $playable_cards[0] = "as_pic";
  4. $playable_cards[1] = "as_trefle";
  5. $playable_cards[2] = "roi_pic";
  6. $playable_cards[3] = "roi_carreau";
  7. function del_valeur($u)
  8. {
  9. $l = explode("_", $u);
  10. $k = $l[1];
  11. return $k;
  12. }
  13. array_walk($playable_cards, 'del_valeur'); // tableau contenant uniquement la couleur des cartes
  14. for ( $z = 0; $z <= 15; $z++ )
  15. {
  16. echo $playable_cards[$z]."<br>";
  17. }
  18. ?>


 
Merci

Reply

Marsh Posté le 19-07-2005 à 20:13:51   

Reply

Marsh Posté le 19-07-2005 à 20:56:13    

Je dirais qu'il faut que tu fasses  

Code :
  1. function del_valeur(&$u, $key)
  2. {
  3. $l = explode("_", $u);
  4. $u = $l[1];
  5. }


 
Ou du moins un truc comme ca, je suis pas sur j'ai jamais utilisé array_walk...

Reply

Marsh Posté le 19-07-2005 à 23:11:20    

ok, tu peux me dire(ou me rappeler) ce que signifie le "&" devant la variable $u ?
 
Merci
 
EDIT: aïe, ça ne change rien !


Message édité par momo194 le 19-07-2005 à 23:20:45
Reply

Marsh Posté le 20-07-2005 à 00:07:03    

Ben si, ça doit fonctionner comme ça.
 
Le & signifie passage par référence, donc la modification du paramètre formel dans la fonction ($u) affecte aussi le paramètre réel, ici un élément de ton tableau.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 20-07-2005 à 00:13:08    

ok, merci
 
et connais-tu un moyen pour passer en argument, en plus de l'élément du tableau(argument 1), un argument externe(argument 2)
 
J'ai cherché et apparement array_walk() ne permet pas cela.

Reply

Marsh Posté le 20-07-2005 à 00:15:58    

On doit pas avoir la même doc. [:mlc]  
 
http://fr.php.net/array_walk
 
bool array_walk ( array &array, callback funcname [, mixed userdata] )
 
array_walk() exécute la fonction funcname sur chaque élément du tableau array. Typiquement, funcname prend deux paramètres. La valeur du paramètre input étant le premier et la clé/index, le second. Si le paramètre optionnel userdata est fourni, il sera passé comme troisième paramètres à la fonction définie par l'utilisateur funcname.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed