Você quer usar implode para isso.
ie:
$commaList = implode(', ', $fruit);
Existe uma maneira de adicionar vírgulas sem deixar uma no final. Você vai querer fazer isso se tiver que fazer alguma outra manipulação ao mesmo tempo. Por exemplo, talvez você queira citar cada fruta e, em seguida, separar todas por vírgulas:
$prefix = $fruitList = '';
foreach ($fruits as $fruit)
{
$fruitList .= $prefix . '"' . $fruit . '"';
$prefix = ', ';
}
Além disso, se você fizer isso da maneira "normal" de adicionar uma vírgula após cada item (como parece que você estava fazendo antes) e precisar cortar o último, basta fazer $list = rtrim($list, ', ')
. Vejo muitas pessoas bagunçando desnecessariamente substr
nessa situação.
É assim que tenho feito:
Resultado:
Demonstração ao vivo: http://ideone.com/EWK1XR
EDITAR: Por comentário de @joseantgv, você deve ser capaz de remover
rtrim()
do exemplo acima. Ie:fonte
rtrim()
. Lembro-me de ter tido um problema com a existência de vírgulas extras no final da string, mas não consigo me lembrar da situação em que isso estava acontecendo.Resultado com
and
no final:fonte
Semelhante à resposta de Lloyd, mas funciona com qualquer tamanho de matriz.
fonte
Eu prefiro usar uma instrução IF no loop FOR que verifica se a iteração atual não é o último valor na matriz. Se não, adicione uma vírgula
fonte
Às vezes você nem precisa do php para isso em certas instâncias (os itens da lista estão cada um em sua própria tag genérica na renderização, por exemplo) Você sempre pode adicionar vírgulas a todos os elementos, exceto o último filho via css se eles forem elementos separados após serem renderizados do script.
Eu uso muito isso em aplicativos de backbone, na verdade, para cortar alguma gordura arbitrária de código:
Basicamente, olha para o elemento, segmenta todos, exceto o último elemento e, após cada item, adiciona uma vírgula. Apenas uma maneira alternativa de não precisar usar o script, se for o caso.
fonte
fonte
Uma solução funcional seria assim:
fonte
Siga este
fonte
Se estiver respondendo entre aspas, você pode
o anterior assume que a fruta não é nula. Se você não quiser fazer essa suposição, pode usar uma instrução if-then-else ou o operador ternário (? :).
fonte
Outra forma poderia ser assim:
A saída de
$result
é uma lista separada por vírgulas bem formatada.fonte
output-> a, b, c, d, e, f, g
fonte