获取数据库结果后从数组中删除最后一个逗号
Remove last comma from array after obtaining database results
我正在尝试从我的数据库中列出数据,我需要在我的数组中使用变量,但是在回显它时我希望它删除最后一个逗号,但它似乎不起作用。
$forum_usersonline = $kunaiDB->query("SELECT * FROM users WHERE user_loggedin = '1'");
while($forum_usersonline_fetch = $forum_usersonline->fetch_array()) {
$usersonlineuname = $forum_usersonline_fetch["user_name"];
$onlinelist = array($usersonlineuname, ' ');
echo implode($onlinelist, ',');
}
它总是 returns 和 user1, user2,
那么我应该怎么做呢?
使用rtrim(string,',')
您可以使用 chop();
从字符串的右端删除字符。
一个例子:
<?php
$str = "Random String Ending With,";
echo $str . "<br>";
echo chop($str,",");
?>
或者您可以使用 rtrim();
,例如:
<?php
$str = "Random String Ending With,";
echo $str . "<br>";
echo rtrim($str,',');
?>
或者您也可以使用 substr
,例如:
<?php
$str = "Random String Ending With,";
echo substr($str,0,-1)."<br>";
?>
您可以在 sql 轻松完成这项工作。如果您的数据库是 mysql 尝试以下
SELECT GROUP_CONCAT(user_name) as user_name FROM users WHERE user_loggedin = '1'
或者如果您的数据库是 postgres,请尝试以下操作
SELECT string_agg(user_name, ',') as user_name FROM users WHERE user_loggedin = '1'
以上查询结果return逗号分隔user_name.
问题是您在 while
循环内执行 implode
,应该在构建最终数组后在外部执行。这就是我要做的:
$forum_usersonline = $kunaiDB->query("SELECT * FROM users WHERE user_loggedin = 1");
while ($row = $forum_usersonline->fetch_array()) {
$onlinelist[] = $row["user_name"];
}
echo implode($onlinelist, ",");
然而,这不应该是这种情况,因为您在进行数据库查询时应该使用 CONCAT
。
我正在尝试从我的数据库中列出数据,我需要在我的数组中使用变量,但是在回显它时我希望它删除最后一个逗号,但它似乎不起作用。
$forum_usersonline = $kunaiDB->query("SELECT * FROM users WHERE user_loggedin = '1'");
while($forum_usersonline_fetch = $forum_usersonline->fetch_array()) {
$usersonlineuname = $forum_usersonline_fetch["user_name"];
$onlinelist = array($usersonlineuname, ' ');
echo implode($onlinelist, ',');
}
它总是 returns 和 user1, user2,
那么我应该怎么做呢?
使用rtrim(string,',')
您可以使用 chop();
从字符串的右端删除字符。
一个例子:
<?php
$str = "Random String Ending With,";
echo $str . "<br>";
echo chop($str,",");
?>
或者您可以使用 rtrim();
,例如:
<?php
$str = "Random String Ending With,";
echo $str . "<br>";
echo rtrim($str,',');
?>
或者您也可以使用 substr
,例如:
<?php
$str = "Random String Ending With,";
echo substr($str,0,-1)."<br>";
?>
您可以在 sql 轻松完成这项工作。如果您的数据库是 mysql 尝试以下
SELECT GROUP_CONCAT(user_name) as user_name FROM users WHERE user_loggedin = '1'
或者如果您的数据库是 postgres,请尝试以下操作
SELECT string_agg(user_name, ',') as user_name FROM users WHERE user_loggedin = '1'
以上查询结果return逗号分隔user_name.
问题是您在 while
循环内执行 implode
,应该在构建最终数组后在外部执行。这就是我要做的:
$forum_usersonline = $kunaiDB->query("SELECT * FROM users WHERE user_loggedin = 1");
while ($row = $forum_usersonline->fetch_array()) {
$onlinelist[] = $row["user_name"];
}
echo implode($onlinelist, ",");
然而,这不应该是这种情况,因为您在进行数据库查询时应该使用 CONCAT
。