以下代码将整个数组导出到 .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);
?>
以下代码将整个数组导出到 .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);
?>
您可以通过在调用 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)
在您的循环中,无需修改数组行的副本(使用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);
在将数组放入 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 中。
例如,如果您只想导出名称,请执行以下操作:
$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);