次の関数は、大学で特定の科目を専攻しているアクティブユーザーの友人のリストを取得します。データは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>';
}
このソリューションは、ちょうど空の配列を返しますが、テストユーザーは、機能の要件を満たす友達がいません。以下は、ユーザーのフレンドリストの配列です。提案された解決策の助けがあれば大いに感謝します。私は今この問題の3日目だ:
(注:各[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
)
)
)
各foreachの前に、INGのスタートのvar_dump」()およびスクリプトが失敗したところ、それはあなたが表示されるはずです。 – Erik
正確にはどういう意味ですか?ベルス?私はいくつか試しましたが、ただ空の配列があります。 – buttonitup
エラーは、データを持つ最後の配列と最初にない配列の間になります。 – Erik