我有一个显示用户朋友的框,但是,它显示了所有这些并延伸到应用的画布。我把它们放在盒子里的一张桌子里,无论如何要限制显示给12个随机朋友的数量?
这是我显示朋友的代码:
if ($user) {
$user_profile = $facebook->api('/me');
$friends = $facebook->api('/me/friends');
echo '<table>';
foreach ($friends["data"] as $value) {
echo '<td>';
echo '<div class="pic">';
echo '<img src="https://graph.facebook.com/' . $value["id"] . '/picture"/>';
echo '</div>';
echo '<font color="white">','<div class="picName">'.$value["name"].'</div>','</font>';
echo '</td>';
}
echo '</table>';
}
?>
答案 0 :(得分:2)
您可以使用FQL进行类似SQL的查询,该查询可以限制和随机化返回的记录 您的查询看起来像这样:
SELECT uid, name FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) ORDER BY rand() LIMIT 12;
要将FQL与PHP SDK一起使用,请使用以下格式:
$facebook->api(array(
'method' => 'fql.query',
'query' => $fql
));
,$fql
是查询。
查看FQL的Technical Guide和Table Reference。
答案 1 :(得分:1)
break
语句退出循环。像这样使用它:
if ($user) {
$user_profile = $facebook->api('/me');
$friends = $facebook->api('/me/friends');
$counter = 1;
echo '<table>';
foreach ($friends["data"] as $value) {
echo '<td>';
echo '<div class="pic">';
echo '<img src="https://graph.facebook.com/' . $value["id"] . '/picture"/>';
echo '</div>';
echo '<font color="white">','<div class="picName">'.$value["name"].'</div>','</font>';
echo '</td>';
if ($counter >= 12) {
break;
}
$counter = $counter + 1;
}
echo '</table>';
}
更高级的方法将使用array_slice()
函数来修改数组。要从$friends['data']
的{{1}}位置0开始,最多只能得到12个元素,你可以写:
foreach