- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業務經營許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯網協會理事單位
- 安全聯盟認證網站身份V標記
- 域名注冊服務機構許可:滇D3-20230001
- 代理域名注冊服務機構:新網數碼
dedecms專題節點ID不能出現重復問題的解決方法
這篇文章主要介紹了dedecms專題節點ID不能出現重復問題的解決方法,需要的朋友可以參考下
在做專題的時候發現個特別郁悶人的事情,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; } } }
售前咨詢
售后咨詢
備案咨詢
二維碼
TOP