找到有效的和非重複的條目我目前使用PHP來幫我找到的Valide和非重複的條目,算法在PHP
,我需要
- 的有效和非列表-duplicated
- 進入無效的輸入列表(唯一的)
- 重複輸入
我的方法,我的列表第一個創建原單5陣列2,1爲沒有錯誤(空), 1爲有效的(空的),1重複(空)
首先使用原單陣列中的一個,每一個元素:檢查有效 並檢查重複,如果無效,放入無效數組,並檢查重複使用inarray
畢竟,我得到一個無效和重複數組,然後使用原數組,檢查哪個元素不在這兩個數組中。和工作完成。
我的問題是,它似乎相當低效,我該如何改進它? (如果使用一些着名算法,則是優選的)
謝謝。
// 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);
和這裏的工作代碼:http://codepad.viper-7.com/BLzcFb(刷新頁面,如果代碼是不顯示) – 2012-04-16 14:48:14