function getchild($pid) { static $arr; $list = "select * from table where parent_id = $pid"; foreach($list as $k =>$v) { $arr[] = $list[$k]; getchild($v['comment_id']); } return $arr; } function get_comment_list() { $comment_list = "select * table where parent_id=0"; foreach($comment_list as $k =>$v) { $child_comments = getchild($v['comment_id']); //递归取出父评论下所有的子评论 $comment_list[$k]['childs'] = $child_comments; } }
Appel en bouclegetchild($pid)
Pendant cette récursion, les commentaires enfants sous chaque commentaire parent incluront les commentaires enfants du commentaire parent précédent. Comment résoudre ce problème ?
Je sais que c'est à cause destatic $arr;
variables statiques. Mais en raison des besoins de l'entreprise, je dois supprimer une telle structure de données, ce qui correspond à la nécessité de fournir une réponse similaire à celle de ce site. Obtenez tous les commentaires des enfants sous chaque commentaire parent. Mais avec l'approche ci-dessus, le commentaire enfant du commentaire parent suivant contient les données du commentaire enfant du précédent.
Y a-t-il un moyen de résoudre ce problème ! ! !
C'est récursif et statique, ce qui est un peu déroutant.
changé en
Est-ce que ça ne va pas ?