1) { // $dups should always find at least one record as the list() value finds the $lines value while(list($dup_key, $filter_dup) = each($dups)) { unset($lines[$dup_key]); fputcsv($reject_dup, $filter_dup); } } echo '.'; } fclose($reject_dup); unset($dups, $n); reset($lines); echo "\nWriting clean records"; while(list(, $line) = each($lines)) { fputcsv($export, $line); } fclose($export); /** * don't think you need to strip with fgetcsv, but maybe trim * * @deprecated * @return string */ function trim_data($value) { return trim($value); } /** * slow... * * @param array $var a line of the csv file * @return bool */ function find_dups($var) { global $filter_value, $n; if (!empty($var[$n['EMAIL']])) { return !strcasecmp($var[$n['FNAME']] .' '. $var[$n['LNAME']], $filter_value[$n['FNAME']] .' '. $filter_value[$n['LNAME']]) || !strcasecmp($var[$n['EMAIL']], $filter_value[$n['EMAIL']]); } else { return !strcasecmp($var[$n['FNAME']] .' '. $var[$n['LNAME']], $filter_value[$n['FNAME']] .' '. $filter_value[$n['LNAME']]); } // return !strcmp($var[$n['FNAME']] .' '. $var[$n['LNAME']], $filter_value[$n['FNAME']] .' '. $filter_value[$n['LNAME']]) || !strcmp($var[$n['EMAIL']], $filter_value[$n['EMAIL']]); // return ($var[$n['FNAME']] .' '. $var[$n['LNAME']] == $filter_value[$n['FNAME']] .' '. $filter_value[$n['LNAME']]) || $var[$n['EMAIL']] == $filter_value[$n['EMAIL']]; }