這篇文章主要介紹了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中文網其他相關文章!