Page 1 sur 1

IMPLODE sur array d'un array

Posté : 17 oct. 2011, 15:12
par Zahnzao
Bonjour,

j'ai un array $test comme ceci

array
0 =>
array
'ID' => string '16' (length=2)
'Name' => string 'Test Testa' (length=10)
1 =>
array
'ID' => string '17' (length=2)
'Name' => string 'Test' (length=4)

Je voudrai faire un implode sur la colonne Name avec le séparateur ", ". Donc obtenir ceci: "Test Testa, Test".

Que dois-je mettre en paramètre ?

implode(", ",??);

Merci.

Re: IMPLODE sur array d'un array

Posté : 17 oct. 2011, 15:15
par popy
implode(", ", array_map('reset', $a));

Re: IMPLODE sur array d'un array

Posté : 17 oct. 2011, 15:33
par Zahnzao
implode(", ", array_map('Reset', $test));

Fonctionne mais me retourne les ID.

J'y arrive en faisant un
$names="";
foreach($test as $list){
   $names.=$list['Name'].", ";
}
Mais bon... implode aurait été plus approprié et plus court. Surtout qu'ici je dois rajouter un count pour ne pas ajouter la virgule sur la derniere ligne.

Re: IMPLODE sur array d'un array

Posté : 17 oct. 2011, 15:38
par Yosh
implode(", ", array_map('Reset', $test));

Fonctionne mais me retourne les ID.

J'y arrive en faisant un
$names="";
foreach($test as $list){
   $names.=$list['Name'].", ";
}
Mais bon... implode aurait été plus approprié et plus court. Surtout qu'ici je dois rajouter un count pour ne pas ajouter la virgule sur la derniere ligne.
$names= array();
foreach($test as $list){
   $names[]=$list['Name'];
}

echo implode(", ", $names);

Re: IMPLODE sur array d'un array

Posté : 17 oct. 2011, 15:44
par Zahnzao
Oui comme ça aussi Yosh. la solution simple en une ligne ne doit pas exister alors :p

Merci à vous deux.

Re: IMPLODE sur array d'un array

Posté : 17 oct. 2011, 16:15
par Yosh
la solution simple en une ligne ne doit pas exister alors :p
Si,
$tab = array(
	0 => array(
  	'id' => 16,
    'name' => 'test 1'
  ),
  1 => array(
  	'id' => 17,
    'name' => 'test 2'
  ),
  2 => array(
  	'id' => 18,
    'name' => 'test 3'
  )
);

echo implode(", ", array_map('end', $tab));
Par contre en utilisant la fonction end, il faut être sûr que schéma ne change jamais...

Donc je te préconise l'autre méthode.

Re: IMPLODE sur array d'un array

Posté : 17 oct. 2011, 21:55
par Zahnzao
Je viens d'essayer et cela fonctionne.

Par schéma si tu veux dire que Name soit toujours la dernière clé y'a pas de risque, car le tableau vient d'une requête "SELECT ID,Name FROM ... WHERE ID=...", je dois récupérer que le nom en fait donc même si ma table s'agrandit, cette requête ne changera jamais.

Merci ;)