找到有效的和非重复的条目我目前使用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