現在、有効で重複していないエントリを見つけるためにphpを使用しています。
私が必要なもの
- 有効で重複していないリスト
- 無効な入力のリストを入力します (一意)
- 重複入力のリスト
私のアプローチは、最初に5つの配列2をオリジナルに、1を間違いのない(空)、1を有効(空)、1を複製(空)に作成することです
最初に元の配列の 1 つを使用して、1 つの要素ごとに : 有効をチェックして重複をチェックし、無効な場合は無効な配列に入れ、inarray を使用して重複をチェックします。
結局、私は無効と重複の1つの配列を取得し、元の配列を使用して、その2つの配列に含まれていない要素を確認します。そして、仕事は終わりました。
私の問題は、どうすればそれを改善できるかということです。(有名なアルゴリズムを使用する場合に適しています)
ありがとうございました。
// get all duplicate input and store in an array
for ($row = 1; $row <= $highestRow; $row++) {
for ($y = 0; $y < $highestColumn; $y++) {
$val = $sheet->getCellByColumnAndRow($y, $row)->getValue();
//use reg exp to check whether it is valid
if ($y == $mailColumn && !preg_match($pattern,$val))
{$invaild[]=$row;}
//if valid, test whether it is duplicate
elseif ($y == $mailColumn && in_array($val,$email))
{$duplicate[]=$val;
$duplicate[]=$row;}
if ($y == $mailColumn)
{$email[]=$val;
$email=array_unique($email);}
}
}
// unique invalid array since i just need invalid inputs, not the invalid + duplicate input
$invaild=array_unique($invaild);