Récupérer les valeurs d'un array

Eléphant du PHP | 428 Messages

21 nov. 2009, 14:47

Bonjour,

Comment puis-je récupérer la valeur d'un array en variable séparée par des virgules ?

Exemple j'ai un array contenant des chiffres.
Un print_r de l'array le renvoie :
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )

Comment le récupérer comme ceci ? :
$variable = '1,2,3,4,5';

Merci
Raph

Eléphant du PHP | 369 Messages

21 nov. 2009, 15:01

Salut,
Bonjour,
Comment puis-je récupérer la valeur d'un array en variable séparée par des virgules ?
Exemple j'ai un array contenant des chiffres.
Un print_r de l'array le renvoie :
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
Comment le récupérer comme ceci ? :
$variable = '1,2,3,4,5';
Merci
Raph
Arf, c'est vrai, c'est samedi. http://www.php.net doit être fermé... tsss, tsss ;)

foreach devrait faire l'affaire pour ce que tu veux:

foreach($array AS $key => $value)

> $array = Ton_Tableau
> $key = la clef au pointeur actuel
> $value = valeur de l'élément au pointeur actuel
> . = concaténation
// Ta variable destination
//
$strDest = "";

// Boucle comme indiqué
//
foreach($array AS $key => $value) // ou foreach($array AS $value)
{
   // cat l'élément recu
   //
   $strDest = $value.", ";
}

// Nétoye la chaine
//
$strDest = "'".rtrim($strDest, ", ")."'";
Beaucoup d'autres techniques mais si tu ne connais pas celle-ci je pense que ca fait un bon début.

@+ bon code ;)

PS: Si ca avait été en semaine je t'aurais donné: http://fr2.php.net/manual/fr/control-st ... oreach.php (humour)

Eléphant du PHP | 428 Messages

21 nov. 2009, 15:29

Bonjour,
foreach($array AS $key => $value) // ou foreach($array AS $value)
{
   // cat l'élément recu
   //
   $strDest = $value.", ";
}
Merci pour ta réponse mais le code que tu fournis ne permet pas de recréer correctement la chaine 1,2,3,4,5 pour deux raisons :

1. si on fait un echo de $strDest, il n'affiche que le dernier chiffre trouvé dans le tableau (en l'occurence "5").
2. Le code affichera toujours une virgule après un chiffre même si c'est le dernier

J'ai un peu recherché et j'ai trouvé qu'il était possible d'utiliser une jointure dans un array et j'ai fait ceci qui fonctionne à merveille :
// $_SESSION["authid"] = Array
$map = array_map(null, $_SESSION["authid"]);
$join = join(', ', $map);

// echo $j me sort bien : 1,2,3,4,5
echo $j;
Merci en tout cas,
Raph

Eléphant du PHP | 369 Messages

21 nov. 2009, 15:56

Bonjour,
foreach($array AS $key => $value) // ou foreach($array AS $value)
{
   // cat l'élément recu
   //
   $strDest = $value.", ";
}
Merci pour ta réponse mais le code que tu fournis ne permet pas de recréer correctement la chaine 1,2,3,4,5 pour deux raisons :

1. si on fait un echo de $strDest, il n'affiche que le dernier chiffre trouvé dans le tableau (en l'occurence "5").
2. Le code affichera toujours une virgule après un chiffre même si c'est le dernier[*]
Précipitation: oups.

il faut écrire
$strDest .= $value.", ";
le point a été oublié lol dsl

[*] Non, le rtrim enlève l'éspace et la virgule.

@+ ;)