foreach 语句重写最后一个元素


foreach statement rewrite last element?

>我使用 foreach 如下

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

返回类似的东西

  1, 2, 3,

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

所以$string返回 1、2、3

您可以使用implode()

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

也许你可以做这样的事情:

$value = array();
foreach($album as $a) { 
    array_push($value, $a['value']);
 }
echo join(',', $value); // join by comma
您可以使用

rtrim()来执行此操作

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

应该做这项工作。

$first = TRUE;
$string = '';
foreach($album as $a) {  
    if ($first) {
        $first = FALSE;
    } else {
        $string .= ', ';
    }
    $string .= $a['value']; 
} 
在这种情况下,

一个 for 循环会更适合,这样您就可以避免为最后一个元素添加它。

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

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

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

尝试:

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

最简单的方法:

foreach($album as $a){ 
    $string .= $a['value'].', ';
}
$string = substr($string, 0, -2);
echo $string;  

更多关于 substr 的信息

在这里