0

我使用 foreach 如下

 foreach($album as $a) { 

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

 }

 echo $string;  

它返回类似的东西

  1, 2, 3,

ETC

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

所以 $string 返回 1, 2, 3

4

8 回答 8

6

你可以使用implode()

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

$string = implode(',', $values);
于 2012-06-26T10:20:11.403 回答
3

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

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

echo join(',', $value); // join by comma
于 2012-06-26T10:19:37.383 回答
2

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

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

应该做的工作。

于 2012-06-26T10:19:24.397 回答
0
$first = TRUE;
$string = '';
foreach($album as $a) {  
    if ($first) {
        $first = FALSE;
    } else {
        $string .= ', ';
    }
    $string .= $a['value']; 
} 
于 2012-06-26T10:19:59.823 回答
0

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

但是您可以将字符串修剪到右侧。

于 2012-06-26T10:20:16.313 回答
0

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

foreach($album as $a){ 
    $string .= $addStr . $a['value'];
    $addStr = ',';
}
于 2012-06-26T10:24:51.077 回答
-1

尝试:

$string = preg_replace('#, $#', '', $string);
于 2012-06-26T10:21:04.573 回答
-1

最简单的方法:

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

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

更多关于 substr这里

于 2012-06-26T10:21:16.303 回答