在Imploding中,PHP数组中的第一个值重复

时间:2015-02-05 10:09:55

标签: php mysql sql arrays

$sql = "SELECT *
        FROM `likes`
        WHERE `pid` = $pid";

$result = $conn->query($sql);

if ($result->num_rows > 0) {

$likers = array();

while($row = $result->fetch_assoc()) {
    $likers[] = $row['uid'];
    echo implode(", ", $likers);
}

} else {
    return "Be the first to like this status...";
}

例如,如果查询导致包含用户ID的3行,则应显示以下内容: 21,20,44

应显示: 21,20,44 但相反,它会显示: 2121,20,44 看看它如何首先显示第一个值?

另一个例子: 50,60,70 但它显示: 5050,60,70

有什么方法可以修复吗?提前致谢

1 个答案:

答案 0 :(得分:7)

您正在while循环中打印结果,这就是它发生的原因。首先,阵列中将有21个,然后它将是21,20等等。在循环外打印它。尝试 -

while($row = $result->fetch_assoc()) {
    $likers[] = $row['uid'];    
}

echo implode(", ", $likers);