从对象数组的单个列创建逗号分隔的字符串

2022-08-30 17:20:02

我正在使用foreach循环来回显数据库中的一些值,如果这有意义,我需要从最后一个循环中删除最后一个逗号。

我的循环很简单,如下所示

foreach($results as $result){
  echo $result->name.',';
}

这回声

result,result,result,result,

我只需要杀死那个讨厌的最后一个逗号。


答案 1

更好:

$resultstr = array();
foreach ($results as $result) {
  $resultstr[] = $result->name;
}
echo implode(",",$resultstr);

答案 2

1. 连接到字符串,但在前面添加|

$s = '';
foreach ($results as $result) { 
    if ($s) $s .= '|';
    $s .= $result->name; 
}
echo $s;

2. 仅当不是最后一项时才回显|

$s = '';
$n = count($results);
foreach ($results as $i => $result) { 
    $s .= $result->name;
    if (($i+1) != $n) $s .= '|';
}
echo $s;

3. 加载到阵列,然后内爆

$s = array();
foreach ($results as $result) { 
    $s[] = $result->name;
}
echo implode('|', $s);

4.连接到字符串,然后最后(或它)切割|rtrim

$s = '';
foreach ($results as $result) { 
    $s .= $result->name . '|';
}
echo substr($s, 0, -1); # or # echo rtrim($s, '|');

5. 连接字符串使用array_map()

echo implode('|', array_map(function($result) { return $result->name; }, $results));