Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将多维数组中的单个列保存为.csv文件?_Php_Multidimensional Array_Export To Csv_Fputcsv_Array Column - Fatal编程技术网

Php 如何将多维数组中的单个列保存为.csv文件?

Php 如何将多维数组中的单个列保存为.csv文件?,php,multidimensional-array,export-to-csv,fputcsv,array-column,Php,Multidimensional Array,Export To Csv,Fputcsv,Array Column,下面的代码将整个数组导出到.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); ?> 例如,如果只想导出名称,请执行以下操作: $test = arr

下面的代码将整个数组导出到.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);
?>

例如,如果只想导出名称,请执行以下操作:

$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);

在将阵列放入csv之前,请先对其进行处理。 例如,如果不需要第一个柱,请将其删除。 您可以使用函数数组\u 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中的列。

在调用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\u shift()
等),只需传递希望用作单个元素数组的列值即可

的第二个参数必须是数组。这就是为什么
$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);

显示定义
$test
的位置。创建
如果
将csv标题限制为所需的标题,请将所需字段保存到csv文件中。如果您发现任何问题,请告知我们。@guarav您希望保存哪个列?你没说。