Выбор категорий нижнего уровня из дерева категорий PHP.

PHP
Попроси заказчик в описаниях разделов сделать ссылки на категории, которые находятся на самом последнем уровне вложенности дерева категорий. Чтоб было более понятно, приведу схему:
Категория 1
	Категория 1.1
	Категория 1.2
		Категория 1.1
		Категория 1.2
		Категория 1.3
	Категория 1.3
	Категория 1.4
Категория 2
Категория 3
Ну а суть задачи в том, чтобы при выборе Категории 1, в описании выводились ссылке не на категории 1.х, а на категории 1.х.х, повторюсь, вложенность может быть любой глубины. Итак, почесав голову, привели в порядок генератор идей и принципе после получасовых мучения родилась следующая функция:
function GetSubCategories($category_id){
        global $DB;
        // Объявляем глобальный массив в который будем записывать ID нужных нам категорий
        global $category_array;
        
        //Полоучаем вложения первого уровня
        $query = "SELECT * FROM `categories` WHERE `parent_id`='".$category_id."'";
        $categories = $DB->q_assocs($query);
        if(empty($category)){
            // Обходим полуенные значения
            foreach($categories as $category){
                //Создаем запрос к БД, чтобы получить подкатегории следующего уровня
                $query = "SELECT * FROM `categories` WHERE `parent_id`='".$category['id']."'";
                $categories = $DB->q_assocs($query);

                //Если подкатегорий на уровне нет, записываем в массив ID нужных нам категорий
                if(empty($category)){
                    $category_array[] = $category['id'];
                }
                //Если категории на следующем уровне есть, вызываем рекурсивно нашу функцию
                else{
                    Application_services::GetSubServices($category['id']);
                }
            }
        }
        return $category_array;