Implodindo uma matriz simples
ficaria assim
$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);
e isso retornaria isso
lastname,email,phone
ótimo, então eu posso fazer isso ao invés
$array = array('lastname', 'email', 'phone');
$comma_separated = implode("','", $array);
$comma_separated = "'".$comma_separated."'";
e agora eu tenho o que quero, uma bela e bonita corda csv
'lastname','email','phone'
existe uma maneira melhor de fazer isso, parece-me que deveria haver um parâmetro opcional para implodir estou faltando alguma coisa?
$comma_separated = "''";
Respostas:
Não, o jeito que você está fazendo está ótimo.
implode()
leva apenas 1-2 parâmetros (se você apenas fornecer um array, ele une as peças por uma string vazia).fonte
fonte
<ul> <li> {!! implode('</li><li>', session('messages')) !!} </li> </ul>
Você pode usar
array_map()
:DEMO
Observe também que existe
fputcsv
se você deseja gravar em um arquivo.fonte
fonte
Não sei se é mais rápido, mas você pode salvar uma linha de código com seu método:
De
Para:
fonte
Se você quiser usar loops, também pode fazer:
Demo: http://codepad.org/O2kB4fRo
fonte
array_map
mas sem usararray_map
Alternativamente, você pode criar uma função:
fonte
Se você quiser evitar os subsistemas fopen / fputcsv, aqui está um trecho que constrói uma string CSV de escape a partir de uma matriz associativa ....
Ou de uma lista de objetos ...
Em seguida, você pode imprimir a string conforme desejado.
fonte
você pode fazer assim também
fonte
Eu acho que é isso que você está tentando fazer
fonte
Outra opção possível, dependendo de para que você precisa da matriz:
Isso colocará '[' e ']' ao redor da string, o que você pode ou não querer.
fonte