Alors, j'ai un tableau comme celui-ci:
foreach ($array as $key => $val) { $string .= ', ' . $val; } $string = substr($string, 0, -2); // Needed to cut of the last ', '
3 Réponses :
Vous pouvez utiliser un problème commun array_map () code> astuce pour "aplatir" la matrice multidimensionnelle, puis
implorez () code> le résultat "aplati", mais en interne PHP touche toujours votre Array Lorsque vous appelez
array_map () code>.
function get_name($i) {
return $i['name'];
}
echo implode(', ', array_map('get_name', $array));
Ouais, mais PHP fait-il beaucoup plus vite. Merci.
Cela serait de préférence à utiliser array_pop (). Si votre tableau 2ND TIER reçoit des clés supplémentaires, il n'est pas garanti que la touche "Nom" sera la première dans la pile. Programmation défensive FTW.
Sur une autre note, si vous êtes sceptique quant à la création d'une nouvelle fonction dans l'espace de noms, utilisez des fermetures ou Create_Function. echo implore (',', array_map (Create_function ('$ a', 'renvoyer $ A ["nom"];'), $ tury));
Vous avez un très bon point concernant votre deuxième commentaire, mais dans cette affaire Simple Solution fera très bien. Et oui, je suis un peu sceptique quant à la création de fonctions pour ce type d'utilisation. Vous voyez, je suis au milieu d'apprendre OOP, donc je suis un peu confus sur quand et où utiliser des fonctions "normales". Votre dernier commentaire a résolu que cependant. J'aimerais pouvoir accepter deux messages.
moyen le plus simple, lorsque vous n'avez qu'un seul élément dans les tableaux intérieurs:
$values = array_map('array_pop', $array); $imploded = implode(',', $values);
Je reçois Array_pop () s'attend à ce que le paramètre 1 soit un tableau, une chaîne donnée
@Dhanuk je ne vois pas le code, mais je suppose que vous devinez que vous disposiez d'une matrice avec des articles et non d'une gamme de tableaux avec des articles.
dans PHP 5> = 5.5.0
implode(', ', array_column($array, 'name'))
@Rafe Kettler: Ouais mais cela ne fonctionne que sur des tableaux monocensionnels.