在做专题讲座的情况下发觉个非常烦闷人的事儿,

五个连接点,随意一个连接点中出現ID反复均被过虑以后载入数据库查询;

因此科学研究了一番,最终发觉元凶便是下列编码:

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;

                    }

                }

            }

在其中foreach循环系统中,有一个isset的分辨,便是在这里过虑了一些反复ID;

不清楚DEDE$arcids这一自变量是怎么设置的,历经foreach循环系统以后即然会授予全部连接点的ID均入到数字能量数组中。

因此,我的解决方案是那样的:

最先将$ids这一数字能量数组自变量开展去重解决:

$ids=array_unique($ids);

以后将isset改成is_array分辨是不是数字能量数组

详细的编码以下:

$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;

                    }

                }

            }

不清楚这般变更是不是会出现别的“不良反应”!敬请大伙儿多多关照!

dedecms.jpg

未经允许不得转载! 作者:访客,转载或复制请以超链接形式并注明出处x36交易网

原文地址:https://www.x36.cn/post/2448.html发布于:2020-07-18