我想通过使用facebook api来获取Facebook好友。
我收到回复
{
"data": [
{
"id": "groupID",
"members": {
"data": [
{
"name": "Abc",
"administrator": false,
"id": "xxxxxx"
},
{
"name": "NewCas",
"administrator": false,
"id": "xxxxxxxxx"
},
{
"name": "Cds",
"administrator": false,
"id": "xxxxxxxxx"
},
{
"name": "akaha",
"administrator": false,
"id": "xxxxxxx"
},
}
}
这是我的代码
$fql = 'https://graph.facebook.com/me/groups?fields=id,members&access_token='.$access_token.'&limit=3';
$fqlresult = file_get_contents($fql);
$f = json_decode($fqlresult, true);
尝试了内爆。
$result = implode(',', array_column($f['data'], 'id'));
我收到了这个回复
GroupID,GroupID,GroupID
我想将响应用户ID(成员ID)作为
xxxxxx,xxxxxx,xxxxxx,xxxxxx,xxxxxx,xxxxxx,xxxxxx
由于
答案 0 :(得分:1)
其他答案几乎是正确的,但data
是一个包含一个元素的数组,所以它应该是:
echo implode(',', array_column($f['data'][0]['members']['data'], 'id'));
这就是当你只有一个groupid时,如果你有多个组ID,你需要循环它。 (通过检查[0]
$groupcount = count($f['data']);
答案 1 :(得分:0)
这有效......
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.12.0/lodash.js"></script>
编辑 - 根据您的更新和更改请求...
$arr = array(
'data' => array(
array('id' => 'xxxx1'),
array('id' => 'xxxx2'),
array('id' => 'xxxx3'),
array('id' => 'xxxx4'),
array('id' => 'xxxx5'),
array('id' => 'xxxx6'),
array('id' => 'xxxx7'),
array('id' => 'xxxx8'),
)
);
echo implode(',', array_column($arr['data'], 'id'));
部分
答案 2 :(得分:0)
echo implode(',', array_column($f['data'][0]['members']['data'], 'id'));
答案 3 :(得分:0)
$data_arr=json_decode($data,true);
$return_str="";
foreach($data_arr['data'] as $row)
{
$return_str .=implode(", ", array_column($row['members']['data'], 'id')) ;
}
echo rtrim($return_str,",");
这适用于$ f ['data']中的多个元素。
答案 4 :(得分:0)
确保您的PHP版本为5.5+。指定版本下方不支持array_column函数。您也可以在没有array_column的情况下使用此代码。
$data = $result['data'][0]['members']['data'];
$keyValue = '';
foreach ($data as $outerKey => $outerValue) {
foreach ($outerValue as $key => $value) {
if($key == 'id'){
$keyValue .= $value . ' ';
}
}
}
echo $keyValue;