Maison >développement back-end >tutoriel php >Exemple de code pour l'ID de nœud de sujet dedecms qui ne peut pas être répété
Cet article présente principalement la solution au problème selon lequel l'ID de nœud spécial dedecms ne peut pas être répété. Les amis dans le besoin peuvent s'y référer
Adresse de téléchargement du modèle dedecms : www.php.cn/xiazai/code/dedecms.
J'ai découvert quelque chose de particulièrement déprimant lorsque je travaillais sur un sujet spécial. Il y avait 5 nœuds en double dans n'importe quel nœud qui étaient filtrés et écrits dans la base de données. Après quelques recherches, j'ai découvert qu'il y avait une déduplication. fonction.
Finalement, le coupable s'est avéré être le code suivant :
if(is_array($ids)) { foreach($ids as $mid) { $mid = trim($mid); if($mid=="") continue; if(!isset($arcids[$mid])) { if($okids=="") { $okids .= $mid; } else { $okids .= ",".$mid; } $arcids[$mid] = 1; } } }
s Parmi eux, dans la boucle foreach, il y a un jugement isset, qui filtre quelques ID en double ;
Je ne sais pas comment la variable de DEDE $arcids est définie. Après la boucle foreach, les ID attribués à tous les nœuds seront entrés dans le tableau<.>. À cette fin, ma solution est la suivante :
Tout d'abord, dédupliquez la variable du tableau $ids :
$ids = array_unique($ids);Puis changez isset en is_array pour déterminer s'il s'agit d'un tableau
Le le code complet est le suivant :
$ids = array_unique($ids); if(is_array($ids)) { foreach($ids as $mid) { $mid = trim($mid); if($mid=="") continue; if(!is_array($arcids[$mid])) { if($okids=="") { $okids .= $mid; } else { $okids .= ",".$mid; } $arcids[$mid] = 1; } } }Je ne sais pas si un tel changement aura d'autres "effets secondaires" ! J'espère que vous pourrez tous me donner quelques conseils !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!