>回复问题*获取所有新闻和所有评论
你真的认为这是最好的方式吗?
我还需要获取当前用户的所有新闻 [authorId]=>99例
$news = array(
[0] = array(
[id]=>1,[authorId]=>99,[data]=>"Lorem Ipsum"
),
[1] = array(
[id]=>2,[authorId]=>99,[data]=>"Lorem Ipsum"
)
);
并获取此用户的所有评论例
$comments = array(
[0] = array(
[comId]=>1,[newsid]=>1,[authorId]=>99,[data]=>"bla bla bla bla"
),
[1] = array(
[comId]=>2,[newsid]=>1,[authorId]=>99,[data]=>"bla bla"
)
);
其他表用户
$users = array(
[0] = array(
[userId]=>99,
[userName]=>"User99"
)
);
和之后
select * from news n left join users u on n.authorId = u.userId where n.authorId = 99
进入此选择推送选择以获取评论
array(
[0] => array(
[id] => 1 // news' id
[userId] => 99,
[data]=>"Lorem Ipsum",
[comments] => array(
[0] => arra(
[comId] => 1 // comment's id
[userId] => 99
[data]=>"bla bla"
),
...
)
),
...
)
有问题的***(上)
第一个查询获取所有新闻文章并将它们放在一个数组中。第二个查询获取评论,并在每篇新闻文章的结构中累积一个单独的数组。
但是,如果此查询和foreach两个数组运行10000次,而例10000刷新页面?
必须使用逻辑缓存
1) 如果您获得许多记录并限制考虑分页查询结果
2) 以不同的排列方式为每张桌子提供单独的信息
$user = array();
$comments = array();
3) 使用 foreach 和 array_merge 组合两个数组
$merge = array();
$i=0;
foreach ($comments as $row) {
extract($row);
if(in_array($iduser, $user)):
$merge[$i] = $comments + $user;
endif;
$i++;
}
这是一个伪代码,没有尝试过,也许应该做一些调整。我希望你服务