我有一个excel orginal.csv文件
ID Name Price
1 Xblue 12
2 Yblue 32
3 Zblue 52
和另一个copy.csv文件
ID Name Price
1 Xblue 89
2 Yblue 43
3 Zblue 45
我想将orginal.csv中的行替换为ID相同的copy.csv。 我可以手动执行此操作还是使用PHP?
我在互联网上搜索了一些选项,但是在这种情况下,我只找到了无法帮助我的getcsv和readcsv函数。原因类似于更新CSV文件。
答案 0 :(得分:0)
它可能最终会导致PHP请求超时,因为这样做需要很多循环。如果有人可以减少该程序的时间复杂度,那么它将起作用。如果它能奏效的话,将花费很多时间。
while(! feof($f_pointer)){ //open old csv to update loop1
$ar=fgetcsv($f_pointer); // getting first row
for($i=0;$i<count($ar);$i++){ //loop2 first row array
$f_pointer2=fopen("new.csv","r"); open new csv to get data
while(! feof($f_pointer2)){ // loop3 to find ID in new csv
$ar2=fgetcsv($f_pointer2); //getting each row in array
for($j=0;$j<count($ar2);$j++){ //loop4 to compare id of old csv to new csv and update data
if($ar[i] == $ar2[j]){
foreach ($ar2 as $fields) { //loop5
fputcsv($f_pointer, $fields);
}
}
}
}
}
}
?>
答案 1 :(得分:0)
我创造了一些解决方案。如果顺序很重要,则不必索引数组并遍历复制的数组。
const device = this.selectedDevtype.devices.find(item => +item.device_id === +this.deviceID)