限制朋友的数量到12个框中显示?

时间:2013-05-13 21:05:23

标签: php html facebook facebook-php-sdk

我有一个显示用户朋友的框,但是,它显示了所有这些并延伸到应用的画布。我把它们放在盒子里的一张桌子里,无论如何要限制显示给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>';
}
?>

2 个答案:

答案 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 GuideTable 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