0

ここにあるのは、Facebook API で動作する PHP ページです。

私がやろうとしているのは、(ユーザーが権限を設定した後)、ユーザーの友人のユーザー ID を次の方法で取得することです$facebook->api('/me/friends')問題は、ランダムに 10 人の友達を取得したいだけです。を使用して簡単に結果を 10 に制限できます/me/friends?limit=10が、これもランダムではありません。

だからここに私が今持っているものがあります:

     $friendsLists = $facebook->api('/me/friends');

     function getFriends($friendsLists){
       foreach ($friendsLists as $friends) {
          foreach ($friends as $friend) {
             // do something with the friend, but you only have id and name
             $id = $friend['id'];
             $name = $friend['name'];
        shuffle($id);
     return "@[".$id.":0],";
          }
       }
     }

$friendsies = getFriends($friendsLists);
$message = 'I found this Cover at <3 '.$Link.'

'.$friendsies.' check it out! :)';

私は shuffle() とここからの最初のオプションを試しました: https://stackoverflow.com/a/1656983/1399030、しかし、何も返さないので何か間違ったことをしている可能性があると思います。近いと確信していますが、これまでに試したことはうまくいきません。それはできますか?

4

1 に答える 1

1

foreach の前にシャッフルを使用して、実際に配列をシャッフルすることをお勧めします。

その後、友達を 10 人に制限する必要があります。$i 変数を追加して 10 までカウントし、新しい配列に追加することをお勧めします。

このようなもの:

function getFriends($friendsLists){
   $formatted_friends = array();
   $i = 0;
   foreach ($friendsLists as $friends) {
      // I'm guessing we'll need to shuffle here, but might also be before the previous foreach
      shuffle($friends);
      foreach ($friends as $friend) {
         // do something with the friend, but you only have id and name
         // add friend as one of the ten
         $formatted_friends[$i] = $friend;
         // keep track of the count
         $i++;
         // once we hit 10 friends, return the result in an array
         if ($i == 10){ return $formatted_friends; }
      }
   }
 }

ただし、エコーで使用できる文字列ではなく、配列が返されることに注意してください。必要に応じて、デバッグ目的でこれをエコーに入れることができます。

echo 'friends: '.print_r($friendsies, true);
于 2012-06-15T22:45:14.690 に答える