2011-03-22 51 views
2

請告訴我最快的方式上傳到PHP的CSV,同時刪除重複(電話號碼)。PHP上傳CSV刪除重複

例子:

Kyle,Hudson,447000000000,[email protected],CUST-1,CUST-2,CUST-3 
John,Doe,447000000001,[email protected],CUST-1,CUST-2,CUST-3 
John,Doe,447000000001,[email protected],CUST-1,CUST-2,CUST-3 
Jack,Doe,447000000004,[email protected],CUST-1,CUST-2,CUST-3 

應該改爲:

Kyle,Hudson,447000000000,[email protected],CUST-1,CUST-2,CUST-3 
John,Doe,447000000001,[email protected],CUST-1,CUST-2,CUST-3 
Jack,Doe,447000000004,[email protected],CUST-1,CUST-2,CUST-3 

我知道如何上傳CSV ECT,我只需要知道如何刪除重複。

我需要創建一個數組或類似的東西,然後用像array_unique功能?

你的幫助是appriciated :)

回答

2

是啊,像你說的。上傳它,把所有的條目放在一個數組中,拋出array_unique並繼續。

+0

戈,什麼是一個CSV文件轉換成數組的最佳方式? – 2011-03-22 16:06:52

+0

那麼,有:http://php.net/manual/en/function.fgetcsv.php 但是,恕我直言,你最好讓自己的東西。 於是打開與file_get_contents()函數的文件,然後爆炸()爲「\ n」,你現在必須每行的數組。然後再次爆炸,這次使用逗號,分號或任何分隔符。現在你有新的數組中的每個項目。 – 2011-03-22 16:09:03

0

array_unique - 如果數據是如此巨大的PHP數組是昂貴

0

您想每一行讀取CSV,然後你要使用一個輔助陣列來存儲和重複檢查。

0

你可以使用array_unique,但你需要創建一個數組.. 你在csv中有一個奇怪的長數?(447000000000)我認爲這對每個用戶都是唯一的。因此,請從數字鍵和做喜歡這裏underneave .. 所以我建議建立這樣一個數組:

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

,現在你可以對

0

使用array_unique你需要的代碼使這項工作非常直觀!

在這裏你去:

<?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