درصورتی که یک آرایه ای داشته باشیم که شامل رابطه ی پدر فرزندی بین دو خانه ی آن باشد ولی بصورت زیر شاخه نباشند، بهتر است آن را برای فهم بهتر و استفاده راحت تر به شکل درختی دربیاورید. (توجه داشته باشید در PHP چون آرایه های چند بعدی حافظه ی زیادتر اشغال نمی کنند عملاً تغییر شکل آرایه ها و تشکیل آرایه های تودرتو در اشغال حافظه ی رم تاثیری ندارد)
به عنوان مثال جدولی بنام category در پایگاه داده داریم که این جدول شامل دو کلید id و parent_id می باشد که parent_id پدر فیلد مورد نظر است. همان طور که می دانید اگر با دستور select نتایج از دیتابیس مثلا MySQL خوانده شود آرایه ای به شکل زیر تحویل php می شود:
$items = array(
array('id' => 42, 'parent_id' => 1),
array('id' => 43, 'parent_id' => 42),
array('id' => 1, 'parent_id' => 0),
);
حال برای استفاده راحتر باید آرایه به شکل زیر تبدیل شود :
array
(
[id] => 1
[parent_id] => 0
[childs] => Array
(
[0] =>
(
[id] => 42
[parent_id] => 1
[childs] => Array
(
[0] =>
(
[id] => 43
[parent_id] => 42
)
)
)
)
)
همان طور که مشاهده می کنید درخت ایجاد شده و شاخه ای بنام childs درصورتی که فرزندی وجود داشته باشد تشکیل می گردد. برای ایجاد چنین آرایه ای به کد php زیر دقت کنید...: