IMPLODE sur array d'un array

Eléphant du PHP | 190 Messages

17 oct. 2011, 15:12

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.

Eléphant du PHP | 275 Messages

17 oct. 2011, 15:15

implode(", ", array_map('reset', $a));

Eléphant du PHP | 190 Messages

17 oct. 2011, 15:33

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.

Mammouth du PHP | 568 Messages

17 oct. 2011, 15:38

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);

Eléphant du PHP | 190 Messages

17 oct. 2011, 15:44

Oui comme ça aussi Yosh. la solution simple en une ligne ne doit pas exister alors :p

Merci à vous deux.

Mammouth du PHP | 568 Messages

17 oct. 2011, 16:15

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.

Eléphant du PHP | 190 Messages

17 oct. 2011, 21:55

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 ;)