首頁 > 後端開發 > php教程 > dedecms專題節點ID不能出現重複問題的範例程式碼

dedecms專題節點ID不能出現重複問題的範例程式碼

黄舟
發布: 2023-03-07 08:06:01
原創
1396 人瀏覽過

這篇文章主要介紹了dedecms專題節點ID不能出現重複問題的解決方法,需要的朋友可以參考下

dedecms模板下載地址: www.php.cn/xiazai/code/dedecms

在做專題的時候發現個特別鬱悶人的事情,5個節點,任一個節點中出現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;
                    }
                }
            }
登入後複製

s其中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專題節點ID不能出現重複問題的範例程式碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
id
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板