在做專題的時候發(fā)現(xiàn)個特別郁悶人的事情,5個節(jié)點,任意一個節(jié)點中出現(xiàn)ID重復均被過濾之后寫入數(shù)據(jù)庫;為此研究了一番,原來有去重復功能。
最后發(fā)現(xiàn)罪魁禍首就是以下代碼:
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循環(huán)中,有個isset的判斷,就是在此過濾了一些重復ID;
不知道DEDE $arcids這個變量是如何設置的,經(jīng)過foreach循環(huán)之后既然會賦予所有節(jié)點的ID均入到數(shù)組中。
為此,我的解決方法是這樣的:
首先將$ids這個數(shù)組變量進行去重復處理:
$ids = array_unique($ids);
之后將isset改用is_array判斷是否是數(shù)組
完整的代碼如下:
$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; } } }不知道如此更改是否會有其他“副作用”!還望大家多多指教!
武林網(wǎng)小編補充:重復你有特殊需求,否則不建議修改。
新聞熱點
疑難解答
圖片精選