У меня есть этот код:Как избежать петли внутри петли
foreach($categories as $category) {
$items = getItems($category);
foreach($items as $item) {
// some code to manipulate $item
}
}
Как вы можете видеть, внутренний цикл зависит от внешнего контура. Проблема в том, что если данные слишком велики, это занимает довольно много времени. Есть ли способ, алгоритм или техника, чтобы я мог избежать внутреннего цикла, который зависит от внешнего цикла?
PS. Я использую PHP 5.3, поэтому yield
не может быть и речи. Также кто-то сказал мне, что может быть рекурсия может быть полезной здесь, но я точно не знаю, как это сделать.
Спасибо за помощь
С чего вы предоставили, я не могу видеть, как алгоритмический избежать это. Вы можете настроить _workflow_ того, что вы пытаетесь сделать, чтобы вам не приходилось одновременно манипулировать элементами каждой категории, а вместо этого просто делать одну категорию за раз –
Выполняет ли getItems запрос базы данных? –
Если вы можете поместить свой код массива и то, что вы ожидали в качестве вывода, тогда любой может предложить решение –