0
在一個Web應用程序中,我的用戶上傳了一個csv文件,我需要在進入數據庫的過程中檢查它。部分信息形成一個簡單的分層數據集,所以我想確保行是唯一的。舉一個例子,這就是我想要做的。什麼是從csv到數據庫的最簡單的方法?
CSV包括這些行...
field5 field6 field7
fred bert apple
fred bert apple
fred george
fred george pear
will tom orange
will tom plum
我要他們吸收到一個PHP數組是這樣的。
$unique_fields = array();
while($row = fgetcsv($handle)){
if($row[5]){
if(!array_key_exists($row[5] , $unique_fields)){
$unique_fields[ $row[5] ] = array();
}
if($row[6]){
if(!array_key_exists($row[6] , $unique_fields[ $row[5] ])){
$unique_fields[ $row[5] ][ $row[6] ] = array();
}
if($row[7]){
if(!array_key_exists($row[7], $unique_fields[ $row[5] ][ $row[6] ] )){
$unique_fields[ $row[5] ][ $row[6] ][ $row[7] ] = array();
}
}
}
}
}
如果這是一個好主意(我願意接受建議) - 那麼最好的方法是什麼?我想將數組傳送到我的數據庫中,以便它看起來像上面的csv示例,但沒有重複。
層次結構如何參與這個問題?你只需要刪除行? – Skrol29
@ Skrol29 - 重點是簡化csv的層次結構。 csv可能有10,000行,但相關列中的層次結構可能只包含(比如說)10-12個唯一項。這些將與其餘的csv數據進入不同的表格。 – Pete