ホームページ >バックエンド開発 >PHPチュートリアル >繰り返しできない dedecms トピック ノード ID のサンプル コード
この記事では、dedecms トピック ノード ID を重複できない問題の解決策を主に紹介します。必要な友達はそれを参照してください
dedecms テンプレートのダウンロード アドレス: www.php.cn/xiazai/code/dedecms
トピック 特に憂鬱な点を発見しました。どのノードでも重複する 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 ループ には、いくつかの重複 ID を除外する isset 判定があります
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 中国語 Web サイトの他の関連記事を参照してください。