foreach语句重写最后一个元素?

时间:2012-06-26 10:17:40

标签: php foreach

我使用foreach如下

 foreach($album as $a) { 

$string .= $a['value'].', ';

 }

 echo $string;  

返回类似

的内容
  1, 2, 3,

现在如何从最后一个循环中删除。

所以$ string返回1,2,3

8 个答案:

答案 0 :(得分:6)

您可以使用implode()

$values = array();
foreach ($album as $a){
  $values[] = $a['value'];
}

$string = implode(',', $values);

答案 1 :(得分:3)

也许你可以这样做:

$value = array();
foreach($album as $a) { 
    array_push($value, $a['value']);
 }

echo join(',', $value); // join by comma

答案 2 :(得分:2)

您可以使用rtrim()执行此操作

rtrim($string, ',');
echo $string;

应该做的工作。

答案 3 :(得分:0)

$first = TRUE;
$string = '';
foreach($album as $a) {  
    if ($first) {
        $first = FALSE;
    } else {
        $string .= ', ';
    }
    $string .= $a['value']; 
} 

答案 4 :(得分:0)

在这种情况下,for循环更适合,所以你可以避免为最后一个元素添加它。

但你可以将字符串修剪到右边。

答案 5 :(得分:0)

如果你不想使用implode(),这是最好的方法,你可以创建一个临时变量:

foreach($album as $a){ 
    $string .= $addStr . $a['value'];
    $addStr = ',';
}

答案 6 :(得分:-1)

尝试:

$string = preg_replace('#, $#', '', $string);

答案 7 :(得分:-1)

最简单的方式:

foreach($album as $a){ 
    $string .= $a['value'].', ';
}

$string = substr($string, 0, -2);
echo $string;  

有关substr here

的更多信息