php csv upload删除重复项

时间:2011-03-22 15:29:11

标签: php file-upload csv duplicates

什么是删除重复项(电话号码)时用PHP上传CSV的最快方法。

示例:

Kyle,Hudson,447000000000,me@you.com,CUST-1,CUST-2,CUST-3
John,Doe,447000000001,me@you.com,CUST-1,CUST-2,CUST-3
John,Doe,447000000001,me@you.com,CUST-1,CUST-2,CUST-3
Jack,Doe,447000000004,me@you.com,CUST-1,CUST-2,CUST-3 

应该成为:

Kyle,Hudson,447000000000,me@you.com,CUST-1,CUST-2,CUST-3
John,Doe,447000000001,me@you.com,CUST-1,CUST-2,CUST-3
Jack,Doe,447000000004,me@you.com,CUST-1,CUST-2,CUST-3 

我知道如何上传CSV等,我只需要知道如何删除重复项。

我是否需要创建一个类似的数组,然后使用像array_unique这样的函数?

你的帮助很大:)

6 个答案:

答案 0 :(得分:2)

是的,就像你说的那样。上传它,将所有条目放在一个数组中,抛出array_unique并继续。

答案 1 :(得分:0)

array_unique - 从数组中删除重复值

http://php.net/manual/en/function.array-unique.php

如果数据如此庞大,那么PHP数组就很昂贵了

答案 2 :(得分:0)

此外,您可以使用array_flip将值作为数组键传递。

数组的键不能重复。

答案 3 :(得分:0)

您希望每行读取csv,然后您想使用辅助数组来存储和检查重复项。

答案 4 :(得分:0)

你可以使用array_unique,但是你需要创建一个数组.. 你的csv中有一个奇怪的长号?(447000000000)我认为这对每个用户都是唯一的。所以从那个号码做一把钥匙,就像在这里做下面的.. 所以我建议创建一个这样的数组:

Array(
  [447000000000] => Array (
    "name" => "Kyle"
    "lastname" => "Hudson",
    "id" => 447000000000
    [.........]
  ),
  [447000000001] => Array (
    "name" => "John"
    "lastname" => "Doe",
    "id" => 447000000001
    [.........]
  )
  [.........]
)

现在你可以在那个

上使用array_unique

答案 5 :(得分:0)

完成这项工作所需的代码非常简单!

你走了:

<?php

$myCSV = file($_FILES['file']['tmp_name']);
//duplicates
var_dump($myCSV);
$myCSV = array_unique($myCSV);
//unique
var_dump($myCSV);

//now handle it how you need