2012-01-15 225 views
0

以下函数将检索主要在大学中给定主题的活动用户的朋友列表。数据是从Facebook GRAPH API中提取的。 (此功能)...在数组的多维数组中查找值

function getCollegeFriends() { 
     $config = array(
     'appId' => 'XXXXXXXXXXXXX', 
     'secret' => 'XXXXXXXXXXXXXX', 
     ); 
     $facebook = new Facebook($config); 
     $user_id = $facebook->getUser(); 
     try { 
     $fql = "select uid,name,education from user WHERE uid IN (select uid2 from friend where uid1=($user_id))"; 
     $param = array(
     'method' => 'fql.query', 
     'query'  => $fql, 
     'callback' => '' 
     ); 
     $fqlResult = $facebook->api($param); 
     } 
     catch(Exception $o){ 
     d($o); 
     } 

     $friends = $fqlResult; 
     $friends_BA = array(); 
     foreach ($friends as $friend) { 
     $isBA = false; 
      if (is_array($friend['education'])) { 
       foreach ($friend['education'] as $school) { 
       if (isset($school)) { 
        foreach ($school['school'] as $name) { 
         $lowerName = strtolower($name); 
         if (strpos($lowerName, 'university of central florida') !== false || strpos($lowerName, 'ucf') !== false) { 
         $friends_BA[] = $friend['name']; 
         continue 3; // skip to the next friend 


         } 
        } 
        } 
       } 
      } 
      } 
      echo '<pre>'; 
      print_r($friends_BA); 
      echo '</pre>'; 
     } 

现在我工作的一个函数返回的谁在同一家公司工作的朋友列表,持有相同的工作岗位等。以下是我的失败刺伤功能:

function getWorkerFriends() { 
     $config = array(
     'appId' => 'XXXXXXXXX', 
     'secret' => 'XXXXXXXXX', 
     ); 
     $facebook = new Facebook($config); 
     $user_id = $facebook->getUser(); 
     try { 
     $fql = "select uid,name,work_history from user WHERE uid IN (select uid2 from friend where uid1=($user_id))"; 
     $param = array(
     'method' => 'fql.query', 
     'query'  => $fql, 
     'callback' => '' 
     ); 
     $fqlResult = $facebook->api($param); 
     } 
     catch(Exception $o){ 
     d($o); 
     } 

     $friends = $fqlResult; 
     $friends_BA = array(); 
     foreach ($friends as $friend) { 
     $isBA = false; 
      if (is_array($friend['work_history'])) { 
       foreach ($friend['work_history'] as $employer) { 
       if (isset($employer)) { 
        foreach ($employer['location'] as $name) { 
         $lowerName = strtolower($name['company_name']); 
         if (strpos($lowerName, 'ubs') !== false || strpos($lowerName, 'merion') !== false) { 
         $friends_BA[] = $friend['name']; 
         continue 3; // skip to the next friend 


         } 
        } 
        } 
       } 
      } 
      } 
      echo '<pre>'; 
      print_r($friends_BA); 
      echo '</pre>'; 
     } 

该解决方案只是返回一个空数组,但测试用户确实有满足函数要求的朋友。以下是用户朋友列表的数组。我们将不胜感激任何有关建议解决方案的帮助。我在第三天现在这个问题的:

(注:每个[OFFSET]是一个不同的朋友活跃用户:

[124] => Array 
    (
     [uid] => 553325624 
     [name] => Persons Name 
     [current_location] => Array 
      (
       [city] => Los Angeles 
       [state] => California 
       [country] => United States 
       [zip] => 
       [id] => 110970792260960 
       [name] => Los Angeles, California 
      ) 

     [work_history] => Array 
      (
      ) 

     [education] => Array 
      (
       [0] => Array 
        (
         [school] => Array 
          (
           [id] => 111894272160018 
           [name] => Spanish River Community High School 
          ) 

         [type] => High School 
        ) 

       [1] => Array 
        (
         [school] => Array 
          (
           [id] => 110186095670702 
           [name] => North Broward Preparatory Schools 
          ) 

         [type] => High School 
        ) 

      ) 

    ) 

[125] => Array 
    (
     [uid] => 560613217 
     [name] => Persons Name 
     [current_location] => Array 
      (
       [city] => Summit 
       [state] => New Jersey 
       [country] => United States 
       [zip] => 
       [id] => 103727996333163 
       [name] => Summit, New Jersey 
      ) 

     [work_history] => Array 
      (
       [0] => Array 
        (
         [location] => Array 
          (
           [city] => 
           [state] => 
          ) 

         [company_name] => Camp High Rocks 
         [description] => 
         [start_date] => 
         [end_date] => 
        ) 

      ) 

     [education] => Array 
      (
       [0] => Array 
        (
         [school] => Array 
          (
           [id] => 106165586082302 
           [name] => Summit Senior High School 
          ) 

         [type] => High School 
        ) 

       [1] => Array 
        (
         [school] => Array 
          (
           [id] => 6192688417 
           [name] => Stanford University 
          ) 

         [year] => Array 
          (
           [id] => 105576766163075 
           [name] => 2015 
          ) 

         [type] => College 
        ) 

      ) 

    ) 
+1

开始的var_dump“荷兰国际集团各的foreach()之前,它应该会显示您的脚本失败。 – Erik 2012-01-15 00:20:08

+0

你究竟在哪里指什么?以及哪些变量BLES?我尝试了一些,但得到了空阵列。 – buttonitup 2012-01-15 02:00:46

+0

错误将发生在确实有数据的最后一个数组和第一个没有数据的数组之间。 – Erik 2012-01-15 02:21:32

回答

0

的var_dump为每个变量,直到找到一个空,这样的如下 假设你的Facebook连接的东西是所有工作正常尝试下面的代码,这应该给你一些有用的输出。

function getWorkerFriends() { 
    $friends = $fqlResult; 

    echo "\$friends <br/>"; 
    var_dump($friends); 

    $friends_BA = array(); 
    foreach ($friends as $friend) { 
    $isBA = false; 

     echo "\$friend <br />"; 
     var_dump($friend); 


     if (is_array($friend['work_history'])) { 
      foreach ($friend['work_history'] as $employer) { 

       echo "\$employer <br />"; 
       var_dump($employer); 

      if (isset($employer)) { 
       foreach ($employer['location'] as $name) { 

        echo "\$name <br />"; 
        var_dump($name); 

        $lowerName = strtolower($name['company_name']); 
        if (strpos($lowerName, 'ubs') !== false || strpos($lowerName, 'merion') !== false) { 
        $friends_BA[] = $friend['name']; 

        echo "Continue to next friend! <br />"; 

        continue 3; // skip to the next friend 


        } 
       } 
       } 
      } 
     } 
     } 
     echo '<pre>'; 
     print_r($friends_BA); 
     echo '</pre>'; 
    } 
+0

https://join.me/344-811-109我会告诉你输出。不知道如何解释,这是很多。 – buttonitup 2012-01-15 03:35:57

+0

链接不起作用,那么如何用输出更新您的第一篇文章? – Erik 2012-01-15 07:02:41