Если я не ошибаюсь, то ты в первом if Вы сразу же закрываете его безо всяких действий <?php endif; ?>, хотя во втором варианте это условие заканчиваеться в конце. И еще одно, в конце Вы закрываете <?php endforeach; ?>, хотя до этого не сделали это для внутреннего foreach