Imploser un tableau simple
ressemblerait à ça
$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);
et cela retournerait ceci
lastname,email,phone
super, alors je pourrais le faire à la place
$array = array('lastname', 'email', 'phone');
$comma_separated = implode("','", $array);
$comma_separated = "'".$comma_separated."'";
et maintenant j'ai ce que je veux une jolie chaîne csv
'lastname','email','phone'
y a-t-il une meilleure façon de faire cela, j'ai l'impression qu'il devrait y avoir un paramètre facultatif pour imploser est-ce que je manque quelque chose?
$comma_separated = "''";
Réponses:
Non, la façon dont vous le faites est très bien.
implode()
prend seulement 1-2 paramètres (si vous fournissez juste un tableau, il joint les morceaux par une chaîne vide).la source
la source
<ul> <li> {!! implode('</li><li>', session('messages')) !!} </li> </ul>
Vous pouvez utiliser
array_map()
:DEMO
Notez également qu'il existe
fputcsv
si vous souhaitez écrire dans un fichier.la source
la source
Je ne sais pas si c'est plus rapide, mais vous pouvez enregistrer une ligne de code avec votre méthode:
De
À:
la source
Si vous souhaitez utiliser des boucles, vous pouvez également faire:
Démo: http://codepad.org/O2kB4fRo
la source
array_map
mais sans utiliserarray_map
Vous pouvez également créer une telle fonction:
la source
Si vous voulez éviter les sous-systèmes fopen / fputcsv, voici un extrait de code qui construit une chaîne CSV échappée à partir d'un tableau associatif ...
Ou à partir d'une liste d'objets ...
Ensuite, vous pouvez afficher la chaîne comme vous le souhaitez.
la source
vous pouvez le faire de cette façon aussi
la source
Je pense que c'est ce que tu essaies de faire
la source
Une autre option possible, selon ce pour quoi vous avez besoin de la baie:
Cela mettra '[' et ']' autour de la chaîne, ce que vous voudrez peut-être ou non.
la source