[PHP-users 17135]UNIQUE値かどうかのチェック

kenbooit @ excite.co.jp kenbooit @ excite.co.jp
2003年 8月 4日 (月) 20:10:14 JST


いつもお世話になってます。
島田と言います。

POSTする側で以下のような変数群をセットしています。

(例)input.php

<INPUT type="text" name="name[0]">
<INPUT type="text" name="name[1]">
<INPUT type="text" name="name[2]">
<INPUT type="text" name="name[3]">
<INPUT type="text" name="name[4]">
<INPUT type="text" name="name[5]">

上記のようにフォームを作って、
入ってくる値は下のようなイメージです。

$name[0] = "赤";
$name[1] = "青";
$name[2] = "緑";
$name[3] = "緑";
$name[4] = "";
$name[5] = "";


実現したいことは$nameはUNIQUEな値を持たせたいので、
上でいうところの$name[2]と$name[3]のような値がPOSTされた時にはエラーを出したい、
というようなものです。
ただし、$name[4]と$name[5]のようなNULLの場合には、エラー対象にはならないようにしなければなりません。

NULLがないのであれば、

*************************************************

$name_unique = array_unique($name);

$count		     = count($name);
$unique_count    = count($name_unique);

if ($count != $unique_count) {
        print ("重複データがあります<BR>");
}

*************************************************

のような感じで実現できるのですが・・・。

っていうことはNULLの場合は配列に入れなければ、
やりたいことは実現できる、と考え、
array_push()で試してみたのですが、
これはもともと配列として値を持っているところに追加するらしく?、
値を全く持たない配列変数には適用できませんでした。
(というよりは値を持たない配列変数の作り方がわかりませんでした。
これができれば単純に問題解決になりそうな気が・・・。
もし、あれば教えてください。)

意味不明で長い文章になってしまって申し訳ありません。
要するにnullを除いて、UNIQUEな値か否かのチェック方法で、
良い方法があれば教えて頂ければと思います。
よろしくお願い致します。


PHP-users メーリングリストの案内