任何人都可以帮我解决这个问题。我正在获取Facebook页面粉丝的区域设置。 Facebook的输出采用JSON格式。在我json_decode($fb_output)
后,我最终得到了数组。我想回复一个包含前10种语言的列表(或者如果少于10种语言的所有语言)和密钥中的值(使用该语言的人数)。到目前为止,我没有成功尝试使用foreach ($fb_output $key => $value)
这是数组:
Array (
[0] => stdClass Object (
[value] => stdClass Object (
[de_DE] => 8527
[en_US] => 313
[en_GB] => 147
[tr_TR] => 106
[it_IT] => 79
[sr_RS] => 25
[hu_HU] => 24
[es_ES] => 15
[bs_BA] => 12
[es_LA] => 12
[sk_SK] => 11
[ro_RO] => 10
[ru_RU] => 9
[pt_BR] => 9
[nl_NL] => 8
[hr_HR] => 8
[fr_FR] => 7
[sv_SE] => 5
[cs_CZ] => 5
[bg_BG] => 5
)
[end_time] => 2012-03-05T08:00:00+0000 ) )
此阵列中的键数因用户而异,因此需要灵活。
答案 0 :(得分:2)
这样的事情怎么样:
$topTen = array_slice(array_keys( (array) $fb_output[0]->value ), 0, 10);
它的作用:
(array)
运营商)array_keys()
功能)array_slice()
功能)如果要提取前十个包括它们的值,请跳过array_keys
部分并确保在切片时数组的键不会混淆(该函数的第4个参数,请参阅更多信息的文档):
$topTen = array_slice( (array) $fb_output[0]->value, 0, 10, true);
echo $topTen['en_GB']; // 147