Maison  >  Article  >  développement back-end  >  Exemple de code pour l'ID de nœud de sujet dedecms qui ne peut pas être répété

Exemple de code pour l'ID de nœud de sujet dedecms qui ne peut pas être répété

黄舟
黄舟original
2017-03-31 09:45:181283parcourir

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn