javascript - Comment résoudre le problème selon lequel les données contiennent l'enregistrement de données précédent lorsqu'une boucle for appelle une fonction récursive? ?
某草草
某草草 2017-07-04 13:46:06
0
1
746
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 ! ! !

某草草
某草草

répondre à tous (1)
阿神

C'est récursif et statique, ce qui est un peu déroutant.

$arr[] = $list[$k]; getchild($v['comment_id]);

changé en

$arr[$v['comment_id]] = getchild($v['comment_id]);

Est-ce que ça ne va pas ?

    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!