1

我正在上传一个包含 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);
        }


    }

我得到了结果,但性能很慢。你能给我一些解决方案,以便我可以提高性能。

提前致谢。

4

1 回答 1

0

你不需要去字符串和回来。使用array_search取消设置

$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)]);
}
于 2012-11-30T07:01:05.613 回答