Implodieren eines einfachen Arrays
würde so aussehen
$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);
und das würde dies zurückgeben
lastname,email,phone
großartig, also könnte ich das stattdessen tun
$array = array('lastname', 'email', 'phone');
$comma_separated = implode("','", $array);
$comma_separated = "'".$comma_separated."'";
und jetzt habe ich was ich will eine schöne hübsche csv string
'lastname','email','phone'
Gibt es einen besseren Weg, dies zu tun? Ich denke, es sollte einen optionalen Parameter für implodieren geben. Fehlt mir etwas?
$comma_separated = "''";
Antworten:
Nein, die Art und Weise, wie Sie es tun, ist in Ordnung.
implode()
Es werden nur 1-2 Parameter verwendet (wenn Sie nur ein Array angeben, werden die Teile durch eine leere Zeichenfolge verbunden).quelle
quelle
<ul> <li> {!! implode('</li><li>', session('messages')) !!} </li> </ul>
Sie könnten verwenden
array_map()
:DEMO
Beachten
fputcsv
Sie auch, dass dies der Fall ist, wenn Sie in eine Datei schreiben möchten.quelle
quelle
Ich weiß nicht, ob es schneller geht, aber Sie können mit Ihrer Methode eine Codezeile speichern:
Von
Zu:
quelle
Wenn Sie Schleifen verwenden möchten, können Sie auch Folgendes tun:
Demo: http://codepad.org/O2kB4fRo
quelle
array_map
aber ohne Verwendungarray_map
Alternativ können Sie eine solche Funktion erstellen:
quelle
Wenn Sie die Subsysteme fopen / fputcsv vermeiden möchten, finden Sie hier ein Snippet, das eine maskierte CSV-Zeichenfolge aus einem assoziativen Array erstellt.
Oder aus einer Liste von Objekten ...
Dann können Sie die Zeichenfolge wie gewünscht ausgeben.
quelle
Sie können es auch so machen
quelle
Ich denke, das ist es, was du versuchst zu tun
quelle
Eine weitere mögliche Option, je nachdem, wofür Sie das Array benötigen:
Dadurch werden '[' und ']' um die Zeichenfolge gesetzt, die Sie möglicherweise möchten oder nicht.
quelle