-2

投票フォームから送信された多くの変数があります。フォーム上の 2 つの値が等しくないことを確認したい。これどうやってするの?

<?php
$Name = $_POST['name'];
$ID = $_POST['id'];
$Topic_1 = $_POST['1'];
$Topic_2 = $_POST['2'];
$Topic_3 = $_POST['3'];
$Topic_4 = $_POST['4'];
$Topic_5 = $_POST['5'];
$Topic_6 = $_POST['6'];
$Topic_7 = $_POST['7'];
$Topic_8 = $_POST['8'];
$Topic_9 = $_POST['9'];
$Topic_10 = $_POST['10'];
$Topic_11 = $_POST['11'];
$Topic_12 = $_POST['12'];
$Topic_13 = $_POST['13'];
$Topic_14 = $_POST['14'];
$Topic_15 = $_POST['15'];

if($_POST != $_POST)???
4

3 に答える 3

4

構造体を使用して、配列に重複する値が含まれているかどうかを簡単に判断できます

if (count($array) === count(array_unique($array))) {
    // contains duplicates
}

これは、 を含むすべての配列に当てはまります$_POST。したがって、15 個のフィールドすべてと名前と ID が互いに一意であることを確認したい場合は、上記を置き換え$_POST$arrayください。

ここで留意すべき点がいくつかあります。

  1. フォーム要素の一部が空白のままになる可能性があり、複数の空白フィールドを許可しても問題ない場合は、重複チェックを行う前にそれらを配列から削除する必要があります。これは次の方法で実行できます (可能な方法は 1 つだけです):

    $array = array_filter($array, function($i) { return strlen($i); });
    
  2. フォーム要素のサブセットのみで重複を探したい場合、最も重要な方法は、このサブセットを独自の配列にすることです。フォーム入力要素に適切な名前を付けることで、PHP にこれを自動的に行わせることができます。

  3. 一意性の概念に関連する関数はarray_count_values、同様の状況で役立ちます (重複する要素がいくつあり、その値が正確に何であるかがわかります)。

于 2013-09-02T20:53:03.677 に答える