在做专题讲座的情况下发觉个非常烦闷人的事儿,
五个连接点,随意一个连接点中出現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;
}
}
}
不清楚这般变更是不是会出现别的“不良反应”!敬请大伙儿多多关照!