зациклить foreach

здравствуйте!

вопрос не касающийся MODx ::

есть массив res1s с вложенными элементами меню —
res1s

id=1 parent=0
id=2 parent=1
id=3 parent=2
id=4 parent=3
...
id=5 parent=0
id=6 parent=5
на входе для фильтрации цикл получает конкретный ID ($ID ), напр.
$ID = 1
$values = array();
foreach ($res1s as $res1) {
	if ($res1->parent == $ID) {
	$values[] = $res1->id;
		foreach ($res1s as $res2) {
			if ($res2->parent == $res1->id) {
				$values[] = $res2->id;
			}
		}
	}
}

задача — получить всех потомков $ID на всех уровнях вложенности
в вышеприведённом примере потомки определяются только на два уровня ниже
т.к глубина вложенности неизвестна, нужно как-то написать функцию на вход которой подавать массив res1s + $ID так чтобы функция делала обход покуда находятся подходящие записи в массиве

в данном случае, при
$ID = 1
в $values должно получится array(2, 3, 4)

спасибо!
Владимир
24 августа 2016, 11:14
modx.pro
778
0

Комментарии: 0

Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
0