I am new at php. Maybe a simple question.. I want to make parent->child view. I have an array like this: With key id and key parent.
How to draw in cycle correct structure? Maybe at first I need to create function for creating the tree ?
JavaScript
x
-Apple
-Services
Duster
array(3) {
[0]=>
array(6) {
["id"]=>
string(3) "127"
["title"]=>
string(5) "Apple"
["deleted"]=>
string(1) "0"
["parent"]=>
NULL
["usp_id"]=>
string(3) "445"
["user_id"]=>
NULL
}
[1]=>
array(6) {
["id"]=>
string(3) "159"
["title"]=>
string(14) "Renault Duster"
["deleted"]=>
string(1) "0"
["parent"]=>
NULL
["usp_id"]=>
string(3) "495"
["user_id"]=>
NULL
}
[2]=>
array(6) {
["id"]=>
string(1) "7"
["title"]=>
string(8) "Services"
["deleted"]=>
string(1) "0"
["parent"]=>
string(3) "127"
["usp_id"]=>
string(2) "79"
["user_id"]=>
string(3) "275"
}
}
Advertisement
Answer
Cycle through the source array $arr
to detect records that have a parent (not null
). When a child record is found, push it into the parent.
JavaScript
foreach ($arr as $key0 => $record) {
if (null !== $record['parent']) {
foreach ($arr as $key1 => $parent) {
if ($parent['id'] === $record['parent']) {
$arr[$key1]['children'][] = $record; // push child into parent
unset($arr[$key0]); // delete child
}
}
}
}