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 :
<?
$playable_cards = array();
$playable_cards[0] = "as_pic";
$playable_cards[1] = "as_trefle";
$playable_cards[2] = "roi_pic";
$playable_cards[3] = "roi_carreau";
function del_valeur($u)
{
$l = explode("_", $u);
$k = $l[1];
return $k;
}
array_walk($playable_cards, 'del_valeur'); // tableau contenant uniquement la couleur des cartes
for ( $z = 0; $z <= 15; $z++ )
{
echo $playable_cards[$z]."<br>";
}
?>
Merci
Publicité
Posté le 19-07-2005 à 20:13:51
gooopil
pfiew
Posté le 19-07-2005 à 20:56:13
Je dirais qu'il faut que tu fasses
Code :
function del_valeur(&$u, $key)
{
$l = explode("_", $u);
$u = $l[1];
}
Ou du moins un truc comme ca, je suis pas sur j'ai jamais utilisé array_walk...
momo194
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
sielfried
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.
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.