이 글에서는 dedecms 특수 노드 ID가 중복되지 않는 문제에 대한 해결 방법을 주로 소개합니다. 도움이 필요한 친구들은 참고하세요
dedecms 템플릿 다운로드 주소: m.sbmmt.com/xiazai/code/dedecms
특별한 주제를 작업할 때 특히 우울한 점을 발견했습니다. 노드가 5개라도 중복되면 이에 대해 조사한 후 필터링하여 데이터베이스에 기록합니다. , 중복 제거 기능이 있는 것으로 나타났습니다.
결국 범인은 다음과 같은 코드로 밝혀졌습니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!