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"; //<=======
}
目前我有一些代码可以检索名称并像 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"; //<=======
}