1

有人请帮助将以下 foreach 代码限制为仅按 desc 顺序输出 4 个结果。非常感谢!

foreach( $users_who_like as $id ) :

if ( $id != $user_id )
$output .= ' &middot <a href="' . bp_core_get_user_domain( $id ) . '" title="' . bp_core_get_user_displayname( $id ) . '">' . bp_core_get_user_displayname( $id ) . '</a>';

endforeach;
4

3 回答 3

1
#delete $user_id from array $users_who_like , we would not compare it any times

$users_list = array_diff($users_who_like,array($user_id));

#sort the array 

rsort($users_list);

#set the limit we want to show

$limit = 4;

#use for better than foreach 

for($i=0;$i<$limit;$i++){
    $id = $users_list[$i];

    #do sometings

}
于 2013-02-17T06:10:05.853 回答
1

您可以使用count并检查它是否4 是这样的

$count = 4; 

foreach( $users_who_like as $id ){

if ( $id != $user_id )
$output .= ' &middot <a href="' . bp_core_get_user_domain( $id ) . '" title="'.bp_core_get_user_displayname( $id ) . '">' . bp_core_get_user_displayname( $id ) .'</a>';

 if(count <=0)
 break; //will break if statement and foreach

 $count--; // reduce it by one

}
于 2013-02-17T05:28:06.593 回答
0

您需要在从数据库中选择数据时进行。
用于ODER BY ... DESC订购、LIMIT限制和WHERE过滤当前用户。

于 2013-02-17T05:27:53.557 回答