Объединение нескольких массивов JSON, возвращаемых Facebook Graph - PullRequest
0 голосов
/ 25 июня 2011

Я пытался найти способ объединения массивов, может быть, у меня проблема с Facebook. Я пытаюсь объединить массивы, которые содержат данные о событиях, на которые собираются конкретные люди. Вот мой PHP до сих пор:

    //Define FQL Query
$fql = "SELECT uid,education,name FROM user WHERE uid IN (SELECT uid1 FROM friend WHERE uid2=me())";
$param = array(
                'method'    => 'fql.query',
                'query'     => $fql,
                'callback'  => '');
//Execute Query
$fqlres = $facebook->api($param);
//Start Blank Array
$friend_events_array = '';
//Loop through results and display events of students of a particular college
foreach($fqlres as $friend){
    if($friend['education'] == ''){
        //If friend does not have an education_history array display Nothing
    }
    else {
        foreach($friend["education"] as $friendEd) {
            //If friend is a college student
            if($friendEd["type"] == "College") {
                $collegeinfo = $friendEd;
                $schoolinfo_friend = $collegeinfo['school'];
                    //If the name of the friend's college is the same as the user's college.
                    if ($schoolinfo_friend['name'] == $schoolinfo_user['name']){
                        echo $friend['name'].": ".$schoolinfo_friend['name'];
                        echo "<br>";
                        //Query Graph for Events
                        $friend_events = $facebook->api($friend['uid']."/events");
                        //Display Events
                        print_r($friend_events);
                        //Merge Arrays
                        $friend_events_array_new = array_merge($friend_events, $friend_events_array);
                        //Rename Array for Looping
                        $friend_events_array = $friend_events_array_new;
                    }

            }

        } 

    }
}

Во-первых, я получаю список всех друзей пользователя (у меня есть все необходимые разрешения, такие как education_history, friends_events и user_education_history. Сначала я просматриваю список и получаю всех пользователей, у которых есть массив образования в их пользовательском объекте. Затем я перехожу к каждому массиву образования и проверяю, являются ли они студентами колледжа, а затем проверяю, соответствует ли их колледж колледжу пользователя. Если это все подтвердится, я делаю вызов API для графа, чтобы получить и получить массив их Каждый массив событий успешно возвращается, но я хотел бы знать, можно ли затем попытаться объединить каждый новый массив событий в цикле с основным массивом событий, который будет расти с каждым обрабатываемым другом.

Мысли

Кроме того, каждый отдельный массив событий выглядит следующим образом:

Array ( [data] => Array ( [0] => Array ( [name] => WU Alumni Meet [start_time] => 2011-10-21T17:00:00 [end_time] => 2011-10-23T13:00:00 [location] => Athletic Complex [id] => 197913876920275 [rsvp_status] => attending ) ) [paging] => Array ( [previous] => https://graph.facebook.com/3100772/events?limit=25&since=1319216400 [next] => https://graph.facebook.com/3100772/events?limit=25&until=1319216400 ) )

Имеет ли это значение?

1 Ответ

0 голосов
/ 25 июня 2011

Если я правильно понимаю, то вы пытаетесь создать комбинированный список всех уникальных событий друга пользователя.

В вашем примере, похоже, что $ friend_events_array - это ваш массиввсе события от всех друзей пользователя.Если это так, то я считаю, что вы уже создаете массив, который расширяется.Вы должны взглянуть на функцию array_unique в PHP, чтобы сделать значения вашего массива уникальными.

  print_r($friend_events);
  //Merge Arrays
  $friend_events_array_new = array_merge($friend_events, $friend_events_array);
  //Rename Array for Looping
  $friend_events_array = $friend_events_array_new;
  $friend_events_array = array_unique($friend_events_array);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...