[英]How to delete some values from a csv column with php
您好,我在excel中有这种数据格式。
A B C
php Html Laravel
mysql Css Wordpress
javascript jquery Codeigniter
我将此另存为csv,并得到逗号分隔的值。 我需要从C列中删除一些项目。例如,我需要删除Laravel和Codeigniter,而其他数据不变。 我该怎么做? 我已经尝试过使用此代码。 但这会删除指定值的整个行。
$table = fopen('tech.csv','r');
$temp_table = fopen('table_temp.csv','w');
$id = 'Laravel'; // the name of the column you're looking for
while (($data = fgetcsv($table, 1000)) !== FALSE){
if(reset($data) == $id){ // this is if you need the first column in a row
continue;
}
fputcsv($temp_table,$data);
}
fclose($table);
fclose($temp_table);
rename('table_temp.csv','tech.csv');
因此,当我运行此命令时,它不仅会删除“ Laravel”,还会删除整个行,即php,HTML,Laravel。
如何在不损害csv文件中其他数据的情况下从列中搜索和删除多个值?
那是因为您要告诉PHP如果该行包含Laravel,则continue
(跳过fputcsv()
代码行),因此该行根本不会写任何行
$table = fopen('tech.csv','r');
$temp_table = fopen('table_temp.csv','w');
$names = ['Laravel', 'Codeigniter']; // The values that you're looking to remove
// (as an array of values)
while (($data = fgetcsv($table, 1000)) !== FALSE){
$data = array_diff($data, $names);
fputcsv($temp_table,$data);
}
fclose($table);
fclose($temp_table);
rename('table_temp.csv','tech.csv');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.