排除php数组中的最后一个逗号

时间:2011-11-27 11:20:39

标签: php sql

我有一个简单的数据库连接:

$rowdata = mysql_query("SELECT * FROM table_names");
        while($row = mysql_fetch_array($rowdata)) {
        echo "".$row['name'].",";
        }

我希望打印出来:

亚当,索菲亚,汤姆,布莱恩

而不是:

亚当,索菲亚,汤姆,布莱恩,

如何以最佳方式排除最后一个逗号?

6 个答案:

答案 0 :(得分:10)

$rowdata = mysql_query("SELECT name FROM table_names");
$names = array();
while($row = mysql_fetch_array($rowdata)) {
    $names[] = $row['name'];
}

echo implode(', ', $names);

答案 1 :(得分:4)

不是直接回应它,而是将它放入一个变量(也许名为$ values)中,然后执行:

$values = rtrim($values,",");

答案 2 :(得分:2)

在每个条目前打印逗号并省略第一个:

$first = TRUE;
while(($row = mysql_fetch_array($rowdata)) !== FALSE) {
  if(!$first) echo ',';
  echo htmlspecialchars($row['name']);
  $first = FALSE;
}

另一种方法是使用提取回显循环的第一行,这样if语句不必每次迭代都被评估(过早优化ftw!):

if(($row = mysql_fetch_array($rowdata)) !== FALSE)
  echo htmlspecialchars($row['name']);
while(($row = mysql_fetch_array($rowdata)) !== FALSE) {
  echo ',', htmlspecialchars($row['name']);
}

答案 3 :(得分:1)

最后你可以在mysql中完成:

select group_concat(name) from table_names

完全这将成为:

$rowdata = mysql_query("SELECT group_concat(name) as names FROM table_names");
while($row = mysql_fetch_array($rowdata)) {
    echo $row['names'];
}

答案 4 :(得分:0)

$rowdata = mysql_query("SELECT * FROM table_names");
$names = array();
while($row = mysql_fetch_array($rowdata)) {
    $names[] = $row['name'];
}

echo implode( $names, ',' );

顺便说一句,如果您只使用“名称”列,那么最好SELECT name FROM ..

答案 5 :(得分:0)

成功..

$names = array();

while ( $row = mysql_fetch_array( $rowdata ) ) {
    $names[] = $row['name'];
}

$names = implode(', ', $names);

echo $names;