以下代码将整个数组导出到.csv文件中,但我只想导出特定的列。
<?php
$test = array(array("eric", 7),array("nancy" ,8),array("dave", 10));
$fp = fopen('new.csv', 'w');
foreach ($test as $fields) {
fputcsv($fp, $fields);
}
fclose($fp);
?>
答案 0 :(得分:0)
在将数组放入csv之前先对其进行处理。
例如,如果您不想要第一个柱子,请将其删除。
您可以使用函数array_shift。
这不会影响原始数组。
喜欢这些代码。
<?php
$test = array(array("eric", 7),array("nancy" ,8),array("dave", 10));
$fp = fopen('new.csv', 'w');
foreach ($test as $fields) {
array_shift($fields);
fputcsv($fp, $fields);
}
fclose($fp);
?>
只保留要保存到csv的列。
答案 1 :(得分:0)
您可以通过在调用fputcsv()之前从$ fields数组中删除要排除的字段来做到这一点。使用传递元素键的unset()函数删除字段。
假设您只想要一个名称列表,请执行以下操作
$test = array(array("eric", 7),array("nancy" ,8),array("dave", 10));
$fp = fopen('new.csv', 'w');
foreach($test as $row){
unset($row[1]);
// Removing the index 1 leaves the array with just one field which will be written to the new.csv file.
fputcsv($fp,$row);
}
fclose($fp)
答案 2 :(得分:0)
在循环中,无需修改数组行的副本(使用unset()
,array_shift()
等),只需将希望用作单个列的列值进行传递即可。 -元素数组。
fputcsv()的第二个参数必须是一个数组。这就是$row[0]
值放在方括号中的原因。
如果要将名称值保存到文件中,请使用$row[0]
。
如果要将数值保存到文件中,请使用$row[1]
。
代码:
$test = ["eric", 7], ["nancy", 8], ["dave", 10]];
$fp = fopen("new.csv", 'w');
foreach ($test as $row) {
fputcsv($fp, [$row[0]]); // if you want first column values
}
fclose($fp);
答案 3 :(得分:-1)
例如,如果您只想导出名称,请执行以下操作:
$test = array(array("eric", 7),array("nancy" ,8),array("dave", 10));
$fp = fopen('new.csv', 'w');
foreach ($test as $fields) {
fputcsv($fp, $fields[0]);
}
fclose($fp);