0

我试图将 Facebook Graph API 中的一组朋友姓名:$friends['name'] 转换为一个有 4 列的表格,每个框中都有一个人的名字。

问题:

我让它制作一个表格并将人们的名字放在表格的单元格中,但是,它在所有 4 行中重复每个人的名字,而不是在每个框中放置一个唯一的名字。但是,下一行以新名称开头。

我会非常感谢任何可以帮助指出我哪里出错并帮助我纠正它的人:

    <? 
    $friends_url = "https://graph.facebook.com/".$user_id."/friends?access_token=".$access_token;
    $friends_json = file_get_contents($friends_url);
    $friends_data = json_decode($friends_json, true);       
    $friends_total = count($friends_data['data']);
    $cols = 4;
    for ($i = 0; $i < $friends_total; $i++) 
    {
            $friends = $friends_data['data'][$i];
            echo "<tr>"; 
                for ($c=0; $c<$cols; $c++) 
                {
                $n = $i+$c;
                    if ( $n < $friends_total) 
                    {
                        echo "<td>".$friends['name']."</td>"; 
                    }
                    else
                    {
                        echo "<td></td>";
                    }
                } 
            echo "</tr>"; 
        $i += ($c-1); 
    } 
    ?>
4

1 回答 1

0

因为您要为每个朋友循环 4 次,并且您的“列”循环计数器在该循环内,所以请尝试更多类似这样的操作:

$cols = 4;
$current_col = 0;

    echo "<tr>"; 
    foreach ($friends_data['data'] as $friend)
    {
      echo "<td>".$friend['name']."</td>"; 
      if (($current_col++)%$cols == 0){
        echo "</tr><tr>";
      }
    }
   while (($current_col++)%$col !=0){
   echo "<td>&nbsp;</td>";
   }
   echo "</tr>"; 

这循环遍历所有的朋友,保持一个计数器已经打印了多少。4(/或任何 $cols 设置为)之后,它吐出一个新行当所有朋友都打印出来时,它开始一个新循环以用空单元格填充最后一行的末尾,然后结束该行

于 2012-05-14T23:54:57.843 回答