Heim > Artikel > Backend-Entwicklung > Referenzmethode zur Implementierungsbaumgenerierung in PHP
In diesem Artikel wird hauptsächlich die Methode zum Generieren eines Referenzimplementierungsbaums in PHP vorgestellt. Ich hoffe, dass er für alle hilfreich ist.
Verwenden Sie immer noch die rekursive Durchquerung der Infinitus-Klassifizierung, die Zeit und Speicher verschwendet? Nachdem Sie diesen Artikel gelesen haben, sollten Sie meiner Meinung nach wechseln.
Dies ist eine sehr prägnante PHP-Infinitus-Klassifizierungs-Spanning-Tree-Methode, die ich zufällig auf OSChina gesehen und zum Teilen zusammengestellt habe.
Der Code lautet wie folgt:
function generateTree($items){ $tree = array(); foreach($items as $item){ if(isset($items[$item['pid']])){ $items[$item['pid']]['son'][] = &$items[$item['id']]; }else{ $tree[] = &$items[$item['id']]; } } return $tree; } $items = array( 1 => array('id' => 1, 'pid' => 0, 'name' => '安徽省'), 2 => array('id' => 2, 'pid' => 0, 'name' => '浙江省'), 3 => array('id' => 3, 'pid' => 1, 'name' => '合肥市'), 4 => array('id' => 4, 'pid' => 3, 'name' => '长丰县'), 5 => array('id' => 5, 'pid' => 1, 'name' => '安庆市'), ); print_r(generateTree($items));
Sie können das gedruckte Ergebnis unten sehen:
Der Code lautet wie folgt:
Array ( [0] => Array ( [id] => 1 [pid] => 0 [name] => 安徽省 [son] => Array ( [0] => Array ( [id] => 3 [pid] => 1 [name] => 合肥市 [son] => Array ( [0] => Array ( [id] => 4 [pid] => 3 [name] => 长丰县 ) ) ) [1] => Array ( [id] => 5 [pid] => 1 [name] => 安庆市 ) ) ) [1] => Array ( [id] => 2 [pid] => 0 [name] => 浙江省 ) )
Das Die obige Spanning-Tree-Methode kann ebenfalls vereinfacht werden. Gehen Sie zu Zeile 5:
Der Code lautet wie folgt:
function generateTree($items){ foreach($items as $item) $items[$item['pid']]['son'][$item['id']] = &$items[$item['id']]; return isset($items[0]['son']) ? $items[0]['son'] : array(); }
Es lohnt sich, von der oben genannten baumstrukturierten Methode für unendliche Klassifizierungsdaten zu lernen. Aber ich denke, die tatsächliche Verwendung dieses Codes ist nicht offensichtlich. Wenn Sie die formatierten Baumdaten herausnehmen möchten, müssen Sie immer noch rekursieren:
Der Code lautet wie folgt:
/** * 如何取数据格式化的树形数据 */ $tree = generateTree($items); function getTreeData($tree){ foreach($tree as $t){ echo $t['name'].'<br>'; if(isset($t['son'])){ getTreeData($t['son']); } } } getTreeData($tree);
Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Studium aller hilfreich sein wird.
Verwandte Empfehlungen:
So implementieren Sie die Persistenzschicht in PHP
So verwenden Sie PHP, um die Datenbank zu betreiben und festzustellen, ob eine Tabelle vorhanden ist
Das obige ist der detaillierte Inhalt vonReferenzmethode zur Implementierungsbaumgenerierung in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!