maq, Семен имел ввиду, что JOIN в общем то такая штука, которую новички обычно не знают и понять не могут
теперь по вопросу
что и так видно из приложенного кода. Код сам по себе весьма нелогичен.
а так понимаю, что тебе надо параллельно вытаскивать из обоих массивов элементы так, чтобы
1. из первого вытаскивается категория.
2. из второго всякая всячина относящая к этой категории.
при этом количество строк в каждом из результатов будет одно и то же, а соответствующие строки будут иметь соответствующие индексы.
проходишь в одном цикле:
1. вытаскиваешь из обоих результатов по строке.
2. кладешь куда надо.
и по-новой. второй цикл здесь ни к чему. тем более усложняет понимание того, что ты хочешь делать. лично мне пришлось запросы сравнить, чтобы понять, а должно быть понятно просто из самой структуры
это так, чтобы тебе было к чему стремиться