PHP 内爆 A、B、C 和其他 X

PHP implode A, B, C and X others

目前我有一些代码可以检索名称并像 User1, User2 and User3 likes this

一样列出它们
$MoreLikers = $this->DBHandle->mysqli->query("SELECT * FROM thread_reply_likes WHERE post_receiver = '".$Row["id"]."'");
while($FetchLikers = $MoreLikers->fetch_array()) {
    $like_user = $this->DBHandle->mysqli->query("SELECT * FROM users WHERE id = '".$FetchLikers["user_giver"]."'");
    $LuArray = array();
    while($RowLu = $like_user->fetch_array()) {
        $LuArray[] = $RowLu;
    }

    $LuArrayz[] = "";

    foreach($LuArray as $Rowz) {
        $TheLikersList[] =  $Rowz["username"];

    }

    if($MoreLikers->num_rows < 4) {
        $last  = array_slice($TheLikersList, -1);
        $first = join(', ', array_slice($TheLikersList, 0, -1));
        $both  = array_filter(array_merge(array($first), $last), 'strlen');
        $TheLikers = join(' and ', $both);

        $ListLikers = "<i class='fa fa-thumbs-up'></i> " . $TheLikers . " likes this";
    } else {
        // what to put here if num_rows are more than 3?
    }
}

我想做的是,如果用户数量(num_rows 基本上)超过 3,则显示为 User1, User2, User3 and X others likes this,其中 X 是 num_rows 减去 3.

我不知道该怎么做。感谢您的帮助!

在中间插入$MoreLikers->num_rows

if($MoreLikers->num_rows < 4) {
        $last  = array_slice($TheLikersList, -1);
        $first = join(', ', array_slice($TheLikersList, 0, -1));
        $both  = array_filter(array_merge(array($first), $last), 'strlen');
        $TheLikers = join(' and ', $both);
        $ListLikers = "<i class='fa fa-thumbs-up'></i> " . $TheLikers .
                      " likes this";
} else {
    $three  = array_slice($TheLikersList,0,3);
    $TheLikers = join(', ', $three);
    $ListLikers = "<i class='fa fa-thumbs-up'></i> " . $TheLikers .
                  " and " . ($MoreLikers->num_rows-3) . " others like this"; //<=======
    }