यदि पेड़ बहुत बड़ा नहीं है, तो आप कुछ चतुर संदर्भों का उपयोग करके बस PHP में ट्री का निर्माण कर सकते हैं।
$nodeList = array();
$tree = array();
$query = mysql_query("SELECT category_id, name, parent FROM categories ORDER BY parent");
while($row = mysql_fetch_assoc($query)){
$nodeList[$row['category_id']] = array_merge($row, array('children' => array()));
}
mysql_free_result($query);
foreach ($nodeList as $nodeId => &$node) {
if (!$node['parent'] || !array_key_exists($node['parent'], $nodeList)) {
$tree[] = &$node;
} else {
$nodeList[$node['parent']]['children'][] = &$node;
}
}
unset($node);
unset($nodeList);
यह आपको $tree
. में ट्री स्ट्रक्चर देगा संबंधित children
. में बच्चों के साथ -स्लॉट।
हमने इसे काफी बड़े पेड़ों (>> 1000 आइटम) के साथ किया है और यह MySQL में पुनरावर्ती क्वेरी करने की तुलना में बहुत स्थिर और बहुत तेज़ है।