Получить список категорий
У меня есть список категорий с многоуровневыми подкатегориями.
Как мне вывести только те категории/подкатегории, у которых вложенные подкатегории не имеют ничего общего с указанным родителем?
Например, есть категории с id=1,2 и parent_id = null и подкатегории с id=3,4,5,6, у которых общий parent_id=1, и подкатегория с id=9, у которой parent_id=4. В итоге, если указать id=1, то категории с id=3,4,5,6,9 не должны отобразиться, т.к. они относятся к категории с id=1. В итоге, если я укажу id=1, то должна отобразится категории с id=2, а если я укажу категорию с id=2, то должны отобразится категории с id=1,3,4,5,6,9.
Моя таблица: id, name, parent_id.
На скриншоте 2 наглядных примера. Если я укажу категорию с id=38, то категории с id=41,42 не должны отображаться. С id=7 похожая ситуация.

Ответы (1 шт):
Немного не понял вопрос, но может вам поможет (есть категория и есть его вложенные подкатегории и так далее). Чтобы достать все подкатегории и его id, то можете использовать такой код и переделать под себя:
public function getAllSubCategories(&$ids = [])
{
$subCategories = $this->subCategorys;
foreach ($subCategories as $subCategory) {
$ids[] = $subCategory->id;
$subCategory->getAllSubCategories($ids);
}
return $ids;
}