solaris
Новичок
как составить массив неграничиной размерности?
Собственно размерность, естесственно, будет ограничена, просто при заполнении массива, мы не знаем, какой размерности будет массив. Короче говоря, я понимаю, что могу страницами описывать это на словах, поэтому вот все это в примере:
Есть таблица MySQL, вот ее поля:
-------------------
id | pid | name|
-------------------
id - ключ и auto_increment,
в pid хранится id другой записи из этой же таблицы, что, по логике, означает, к какой записи принадлежит текщуя...
ух тяжело сформулировать....
Короче получается как матрешка, есть главные записи у них pid=0, что означают, что они самые большие "матрешки", в них есть другие "матрешки" поменьше, у них pid равен id предыдущей "матрешки" .
примерно так:
-------------------
id | pid | name|
-------------------
1 | 0 | big1 |
2 | 0 | big2 |
3 | 1 |small1|
4 | 2 |small2|
5 | 2 |small3|
6 | 4 | min1 |
7 | 6 | mi1 |
вот отсюда следует: что записи 1 и 2, самы большие, запись 3 "лежит" в записи 1; записи 4 и 5 "лежат" в записи 2, запись 6 "лежит" в записи 4, запись 7 "лежит" в записи 6.
Так вот собственно проблема: дело в том, что глубина этих "залежей" скрипту неизвестна, а данные нужно записывать в массив, для последнего примера, массив должен выглядеть так:
никак не пойму как составить, группу циклов, для обхода этой MySQL таблицы, чтоб занестиее полностью в аналогичный массив, не зная глубины вложений....
вот такая головоломка
(((
Такое вообще возможно?
У меня мозг пухнет при попытке предстваить количсетво циклов....
((
Уважаемые профессионалы, помогите пожалуйста встать на путь верный в решении этого вопроса.
Заранее спасибо!
Собственно размерность, естесственно, будет ограничена, просто при заполнении массива, мы не знаем, какой размерности будет массив. Короче говоря, я понимаю, что могу страницами описывать это на словах, поэтому вот все это в примере:
Есть таблица MySQL, вот ее поля:
-------------------
id | pid | name|
-------------------
id - ключ и auto_increment,
в pid хранится id другой записи из этой же таблицы, что, по логике, означает, к какой записи принадлежит текщуя...
ух тяжело сформулировать....
Короче получается как матрешка, есть главные записи у них pid=0, что означают, что они самые большие "матрешки", в них есть другие "матрешки" поменьше, у них pid равен id предыдущей "матрешки" .
примерно так:
-------------------
id | pid | name|
-------------------
1 | 0 | big1 |
2 | 0 | big2 |
3 | 1 |small1|
4 | 2 |small2|
5 | 2 |small3|
6 | 4 | min1 |
7 | 6 | mi1 |
вот отсюда следует: что записи 1 и 2, самы большие, запись 3 "лежит" в записи 1; записи 4 и 5 "лежат" в записи 2, запись 6 "лежит" в записи 4, запись 7 "лежит" в записи 6.
Так вот собственно проблема: дело в том, что глубина этих "залежей" скрипту неизвестна, а данные нужно записывать в массив, для последнего примера, массив должен выглядеть так:
PHP:
array(
[0] => array(
[id] => 1
[pid] => 0
[name] => big1
[children] => array(0=>array(
[id] => 3
[pid] => 1
[name] => small1
[children] =>
)
)
)
[1] => array(
[id] => 2
[pid] => 0
[name] => big2
[children] => array(0=>array(
[id] => 4
[pid] => 2
[name] => small2
[children] =>array(0=>array(
[id]=>6
[pid]=>4
[name]=>min1
[children]=>array(..id=>7
)
)
1=>array(
[id] => 5
[pid] => 2
[name] => small3
[children] =>
)
)
)
никак не пойму как составить, группу циклов, для обхода этой MySQL таблицы, чтоб занестиее полностью в аналогичный массив, не зная глубины вложений....
вот такая головоломка
(((Такое вообще возможно?
У меня мозг пухнет при попытке предстваить количсетво циклов....
((Уважаемые профессионалы, помогите пожалуйста встать на путь верный в решении этого вопроса.
Заранее спасибо!
))) во -первых в целях повышения образованности