将name连接content的组合字符串md5加密后放到数组中,如果已经存在了,那么就将该项数据从数据中删除

解决方案 »

  1.   

    $excelData = array(
        array('张三', '吃饭'),
        array('李四', '吃饭'),
        array('张三', '喝水'),
        array('李四', '吃饭'),// 重复
        array('张三', '喝水') // 重复
    );$ = array(); // 用来当作唯一标识
    foreach ($excelData as $key => $arr) {
        $md5Mark = md5($arr[0] . $arr[1]);
        if (isset($[$md5Mark])) {
            unset($excelData[$key]);
        } else {
            $[$md5Mark] = 1;
        }
    }// 此时你就可以操作$excelData而不用判断了,当然了你也可以直接在else中进行sql语句的组合或者数据库写入操作
    p($excelData);
    /*
    输出:
    Array
    (
        [0] => Array
            (
                [0] => 张三
                [1] => 吃饭
            )    [1] => Array
            (
                [0] => 李四
                [1] => 吃饭
            )    [2] => Array
            (
                [0] => 张三
                [1] => 喝水
            ))
    */
      

  2.   

    在 name content 上建联合唯一索引
      

  3.   

    name和content都不能唯一,因为都有重复的记录,至于联合唯一索引,没听说过,如何建啊?
      

  4.   

    name和content都不能唯一,因为都有重复的记录,至于联合唯一索引,没听说过,如何建啊?
      

  5.   

    在 name content 上建联合唯一索引,如何建?因为Name和content都有重复的,不能单个唯一索引,关于两个联合起来建唯一索引如何建?
      

  6.   


    将数据库里所有是数据查出来,循环将name和content连接起来,也把excel数据中的name和content连接起来,然后计算两个数组的差值,将差值存入数据库
      

  7.   


    // 数据库中查出来的所有数据
    $dbData = array(
        array(0, '张三', '吃饭'),
        array(1, '李四', '吃饭'),
    );// excel中的数据
    $excelData = array(
        array('张三', '吃饭'), // 与 $excelData中数据重复
        array('李四', '吃饭'), // 与 $excelData中数据重复    array('张三', '喝水')  // *应该促入数据库的数据<<<
    );
    $ = array(); // 用来当作唯一标识的容器
    foreach ($dbData as $arr) {
        $md5Mark = md5($arr[1] . $arr[2]);
        $[$md5Mark] = 1;
    }foreach ($excelData as $key => $arr) {
        $md5Mark = md5($arr[0] . $arr[1]);
        if (isset($[$md5Mark])) {
            unset($excelData[$key]);
        }
    }p($excelData);
    /*
    Array
    (
        [2] => Array
            (
                [0] => 张三
                [1] => 喝水
            ))
    */
      

  8.   

    联合索引:create UNIQUE INDEX 索引名 on 表名 (name,content); 
      

  9.   


    语文这里的p($excelData);
    p();方法是什么方法?
      

  10.   

    如何判断哪些是重复被唯一索引过滤掉的呢插入成功後調用mysql_insert_id()是可以返回最後一條插入紀錄的id
    如果返回0,就表示插入失敗。可以用此來判斷。