Reputation: 163
I have some data stored in a table like so:
id parent_id name
1 0 Entry 1
2 0 Entry 2
3 0 Entry 3
4 1 Child of entry 1
I want to turn it into a nested array like so:
array(
array(
'id' => 1,
'parent_id' => 0,
'name' => 'Entry 1',
'children' => array(...)
),
...
);
Ideally, it would need to support an infinite amount of nesting (children with children). Is my table set up to support this, if so, how would I generate this kind of array using the data in the table? If not, how should I set up my table?
Upvotes: 3
Views: 6658
Reputation: 30528
There is a very good description of managing hierarchical data in mysql here: managing hierarchical data Here is another good example of building nested arrays: building nested arrays
You may think about using the Nested Set model. If you are going to query stuff mutch it is better than the adjacency model you are using right now.
Hope that helps.
Upvotes: 6
Reputation: 10467
You won't have hierarchical data from "plain" SQL dataset, but you can write a function that will do that recursively. I can't provide code at the moment, but you probably get the idea.
Upvotes: 0