我正在上传一份包含1000条记录的excel文件。在我的数据库(mysql)中,已经存在一些记录。现在上传excel文件后,我将这些数据串在一个数组中。为此,我使用PHPExcel。现在,我再次想要使用那些不在我的数据库中的记录来形成一个新数组。为此,我使用的逻辑如下: 首先将数组(在上载excel文件后获得)转换为字符串。然后从字符串我替换记录,这是一个空格在数据库中。然后我再次将该字符串转换为数组。 代码就像:
$sheetData = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true);
//array_shift($sheetData);
$string = "";
foreach( $sheetData as $val){
foreach($val as $v){
$string .= $v.",";
}
}
$string = str_replace($res['email'],'',$string); // $res['email'] is from database
$ultimate_array = array();
$formatted_array = explode(',',$string);
foreach($formatted_array as $fa){
if(strstr($fa,'@')){
array_push($ultimate_array,$fa);
}
}
我得到了结果,但性能非常慢。你能给我一些解决方案,以便我可以提高性能。
提前致谢。
答案 0 :(得分:0)
你不需要去串又回。 使用array_search和unset
$sheetData = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true);
// you may need this depending on the structure of your array
// array_shift($sheetData);
if (in_array($res['email'], $sheetData)) {
unset($sheetData[array_search($res['email'], $sheetData)]);
}