我需要通过Facebook PHP SDK返回的大型数组来移动帮助。我正在尝试查找用户的所有帖子,然后检查帖子是否包含“链接”键。我已经读过,在这个大小的数组上使用foreach循环效率不高,因为要复制1MB数据来处理它。我应该如何有效地遍历信息?从大型多维数组中过滤帖子,PHP,Facebook API
阵列的结构是这样,其中“x”是每个帖子的数量:
Array
(
[data] => Array
(
[x] => Array
(
[from] => Array
(
[name] => james
)
[message] => Thanks for the great interview!
[link] => http://example.com/link.html
[description] => Description here
[etc] => Various other keys possible
)
)
)
然后我当前的代码如下所示,其中$饲料是从Facebook的API数组:
for ($x=0, $y=0; $x<=1000, $y<=19; $x++) {
if (array_key_exists('james', $feed['data'][$x]['from']['name'])) {
if (!array_key_exists('link', $feed['data'][$x])) {
echo "<div>" . $feed['data'][$x]['message'] . "<hr>" . $feed['data'][$x]['description'] . "</div>";
$y++;
};
};
};
我已阅读了各种迭代器,但我不知道要使用哪个!希望你能帮助我,欢呼声,乔
非常感谢 - 是的,这只是描述我的逻辑 - 我知道这是非常低效的代码。我使用的是foreach,然后使用上面的技术进行优化。再次感谢你的帮助! :) – Joe 2012-04-29 14:36:24