>  기사  >  백엔드 개발  >  반복할 수 없는 Dedecms 주제 노드 ID의 샘플 코드

반복할 수 없는 Dedecms 주제 노드 ID의 샘플 코드

黄舟
黄舟원래의
2017-03-31 09:45:181351검색

이 글에서는 dedecms 특수 노드 ID가 중복되지 않는 문제에 대한 해결 방법을 주로 소개합니다. 도움이 필요한 친구들은 참고하세요

dedecms 템플릿 다운로드 주소: www.php.cn/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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.