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

Jor*_*dan 3 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...";
}
Run Code Online (Sandbox Code Playgroud)

例如,它应该显示如果查询在3行结果与用户ID下面:21,20,44

它应显示:21,20,44 但它显示:2121,20,44 看它如何显示第一个值?

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

有什么方法可以解决?提前致谢

Sou*_*ose 7

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

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

echo implode(", ", $likers);
Run Code Online (Sandbox Code Playgroud)