Php foreach - 用逗号分隔每个循环,除了最后一个元素

时间:2013-03-28 21:24:45

标签: php

这就是我的意思:

foreach ($array as $a) {
 echo $a.',<br/>';
}

当前输出为:

a,
a,
a,
a,

我希望输出如下:

a,
a,
a,
a

(所有'a'用逗号分隔,当涉及到最后一个循环时,它不会写逗号)

6 个答案:

答案 0 :(得分:10)

试试这个:

echo implode(",<br/>", $array);

答案 1 :(得分:3)

如果数组的长度太大或者你有多维数组,请使用下面的代码

<?php $len=count($array);
    foreach($array as $a){ 
        echo $a; 
        if( $len > 1) echo ','; 
        $len--;
 } ?>

答案 2 :(得分:2)

如果您还想将数组中的任何换行符转换为<br />,这可能是您输出时的理想选择:

echo nl2br(implode(',' . PHP_EOL, $array));

答案 3 :(得分:1)

PHP具有implode功能:

 implode(",<br>", $array);

答案 4 :(得分:1)

没有人说你可以这样做:

foreach($array as $element) { 
    $separator = ($element != end($array)) ? ",<br />" : '';
// or $separator = ($element == end($array)) ? '' : ",<br />";   
    echo $element.$separator;
}

我想这将完全按照您的意愿输出。

答案 5 :(得分:0)

除了一种情况外,你应该使用implode

如果输出很大,并且您不想在发送到输出之前将其保留在内存中(例如逐项处理),那么您应该执行以下操作:

$remain=count($array);
foreach ($array as $a) {
    echo $a;
    if($remain-->0) echo ',';
    echo '<br/>';
}