создать дерево массивов из списка массивов

у меня есть список вроде этого:

array(
  array(id=>100, parentid=>0, name=>'a'),
  array(id=>101, parentid=>100, name=>'a'),
  array(id=>102, parentid=>101, name=>'a'),
  array(id=>103, parentid=>101, name=>'a'),
)

, но намного больше, поэтому мне нужен эффективный способ превратить это в древовидную структуру вроде этой:

array(
  id=>100, parentid=>0, name=>'a', children=>array(
    id=>101, parentid=>100, name=>'a', children=>array(
      id=>102, parentid=>101, name=>'a',
      id=>103, parentid=>101, name=>'a',
    )
  )
)

Я не могу использовать такие вещи, как вложенный набор, или что-то подобное, потому что я могу добавлять левые и правые значения в моей базе данных. Любые идеи?

43
задан mickmackusa 1 December 2018 в 12:30
поделиться