2013-02-17 113 views
1

有人请帮助限制下面的foreach代码,以输出4个结果,并按desc顺序。非常感谢你!限制foreach输出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; 
+0

我们不写的代码你。请告诉我们你已经尝试了什么。 – Achrome 2013-02-17 05:21:21

+0

在这一点上,你最好使用常规的for-loop。 – 2013-02-17 05:22:51

+0

您必须提供带出这些结果的mysql代码 – 2013-02-17 05:26:47

回答

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 

} 
+0

嗨,我在此行计数中遇到意外的T_DEC错误 - ;这段代码的工作没有计数 - ;但如果它超过4,则不会显示任何结果。 – lukekiko 2013-02-17 05:44:33

+1

在'count - '上缺少'$'。 – 2013-02-17 05:45:22

+0

c#背景.. – Mido 2013-02-17 05:48:12

0

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

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 

}