php - Comment obtenir récursivement tous les commentaires d'un article? ? ?
phpcn_u1582
phpcn_u1582 2017-06-30 09:53:28
0
1
889

Structure de la table :
comment_id ID du commentaire
arc_id ID de l'article
content content
parent_id comment nœud parent

Je souhaite obtenir une telle structure de données de manière récursive :

$arr=tableau(

[0]=>array( comment_id=>1 parent_id =>0 ['child']=>array( [0]=>array( comment_id=>2 parent_id =>1 ) [1]=>array( comment_id=>3 parent_id =>2 ) [2]=>array( comment_id=>4 parent_id =>1 ) ........ ) ) [1]=>array( comment_id=>5 parent_id =>0 ['child']=>array( [0]=>array( comment_id=>6 parent_id =>5 ) [1]=>array( comment_id=>7 parent_id =>5 ) [2]=>array( comment_id=>8 parent_id =>7 ) ........ ) )

)

phpcn_u1582
phpcn_u1582

répondre à tous (1)
学霸
  1. Prenez d'abord un tableau bidimensionnel, chaque élément a uncomment_idparent_idchamp

  2. Utilisez ensuite la fonction suivante pour convertir le tableau bidimensionnel ci-dessus en une structure arborescente :

 1, 'parent_id' => 0], ['comment_id' => 2, 'parent_id' => 0], ['comment_id' => 3, 'parent_id' => 2], ['comment_id' => 4, 'parent_id' => 1], ['comment_id' => 5, 'parent_id' => 4], ['comment_id' => 6, 'parent_id' => 4], ]; function getTree($arr = []) { $a = array_column($a, NULL, 'comment_id'); $tree = []; foreach($a as $i => &$v) { if(isset($items[$item['parent_id']])){ $items[$item['parent_id']]['children'][] = &$items[$item['comment_id']]; } else { $tree[] = &$items[$item['id']]; } } return $tree; }
    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal
    À propos de nous Clause de non-responsabilité Sitemap
    Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!