【发布时间】:2015-05-08 20:05:50
【问题描述】:
我有这个代码:
foreach($categories as $category) {
$items = getItems($category);
foreach($items as $item) {
// some code to manipulate $item
}
}
如您所见,内循环依赖于外循环。问题是如果数据太大,这需要相当长的时间。有什么方法、算法或技术可以避免依赖外循环的内循环?
PS。我使用的是 PHP 5.3,所以 yield 是不可能的。也有人告诉我,递归在这里可能会有所帮助,但我不知道该怎么做。
感谢您的帮助
【问题讨论】:
-
根据您提供的内容,我看不出有任何算法可以避免这种情况。您可以调整您正在尝试做的事情的工作流程,这样您就不必一次操作每个类别的项目,而是一次只做一个类别
-
getItems 是否运行数据库查询?
-
如果您可以将数组代码和您期望的内容作为输出,那么任何人都可以提出解决方案
-
请添加
getItems的代码 -
总的来说,我的观点是如何避免循环内循环,不管我使用的是数据库还是
getItems做了什么。当我们必须编写这样的代码时通常会出现这种情况,但应该有一些更好的性能方法来避免内部循环。希望是有道理的。