Implodowanie prostej tablicy
wyglądałoby tak
$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);
i to zwróci to
lastname,email,phone
świetnie, więc zamiast tego mogę to zrobić
$array = array('lastname', 'email', 'phone');
$comma_separated = implode("','", $array);
$comma_separated = "'".$comma_separated."'";
a teraz mam to, czego chcę, ładny, ładny ciąg CSV
'lastname','email','phone'
czy jest lepszy sposób na zrobienie tego, wydaje mi się, że powinien istnieć opcjonalny parametr dla implodowania. Czy czegoś mi brakuje?
$comma_separated = "''";
Odpowiedzi:
Nie, sposób, w jaki to robisz, jest w porządku.
implode()
przyjmuje tylko 1-2 parametry (jeśli podasz po prostu tablicę, połączy elementy pustym ciągiem).źródło
źródło
<ul> <li> {!! implode('</li><li>', session('messages')) !!} </li> </ul>
Możesz użyć
array_map()
:PRÓBNY
Zauważ również, że jest,
fputcsv
jeśli chcesz pisać do pliku.źródło
źródło
Nie wiem, czy to szybsze, ale możesz zapisać linię kodu za pomocą swojej metody:
Z
Do:
źródło
Jeśli chcesz używać pętli, możesz również:
Demo: http://codepad.org/O2kB4fRo
źródło
array_map
bez użyciaarray_map
Alternatywnie możesz utworzyć taką funkcję:
źródło
Jeśli chcesz uniknąć podsystemów fopen / fputcsv, oto fragment kodu, który tworzy ciąg znaków CSV ze zmianą znaczenia z tablicy asocjacyjnej ...
Lub z listy obiektów ...
Następnie możesz wyprowadzić ciąg zgodnie z potrzebami.
źródło
możesz to również zrobić w ten sposób
źródło
Myślę, że właśnie to próbujesz zrobić
źródło
Inna możliwa opcja, w zależności od tego, do czego potrzebujesz tablicy:
Spowoduje to umieszczenie znaków „[” i „]” wokół łańcucha, czego możesz chcieć lub nie.
źródło