0

私がやろうとしているのは、フォームからエントリのリストを作成することですが、フォームに複数回入力された場合、同じエントリがリストに複数回表示されることは望ましくありません。たとえば、1 人が「1」を入力し、2 人が「2」を入力したとします。2 はリストに 1 回だけ表示されるようにします。これにはどのような機能を使用できますか?

4

3 に答える 3

2

最善の方法は、すべてのエントリを配列 (基本的な数値インデックス付き配列) に格納してから、重複を削除することです。

uniqueEntries = array_unique($yourEntries);

ドキュメント:array_unique

コードの例:

$entries = array();
$entries[] = 1;
$entries[] = 1;
$entries[] = 2;

$entries = array_unique($entries);

print_r($entries);

出力します:

Array
(
    [0] => 1
    [2] => 2
)
于 2013-03-30T00:30:19.140 に答える
1

この場合、PHP Arraysを使用する必要があります。配列は 2 次元のテーブルです。

/* Array
 * key => value
 * @key personID
 * @value optionValue
 */
$array = array(
    1 => 1, // Person 1 chose Option 1
    2 => 2, // Person 2 chose Option 2
    3 => 2  // Person 3 chose Option 2
);
print_r($array);

版画

Array
(
    [1] => 1 
    [2] => 2 
    [3] => 2
)

を介して配列にアクセスすることで、一意の値のセットをフェッチできるようになりましたarray_unique($array);

$array_unique = array_unique($array);
$array_unique_values = array_values($array_unique);

// Access array values directly and store into variables.
// Notice that arrays in PHP start with the index zero.
$option1 = $array_unique_values[0];
$option2 = $array_unique_values[1];

echo "Option #1: " . $option1 . "\n";
echo "Option #2: " . $option2;

版画

Option #1: 1
Option #2: 2

ほら。

于 2013-03-30T01:21:51.923 に答える
0

PHPには、そのための組み込み関数はありません。しかし、あなたは次のようなもので試すことができます:

$echoList = array();
function echoOnce( $text )
{
   global $echoList;
   if(!in_array($text, $echoList)) {
      echo $text;
      $echoList[] = $text;
   }
}

そして、echoOnce( "whatever" )代わりに使用するだけですecho "whatever"

于 2013-03-30T00:29:08.907 に答える