Следующий код экспортирует весь массив в файл .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.
например, если вы не хотите первый столбец, удалите его.
Вы можете использовать функцию 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.
В вашем цикле нет необходимости изменять копию строки массива (с помощью 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);
Вы можете сделать это, удалив поля, которые вы хотите исключить из массива $ fields перед вызовом fputcsv (). Удалите поля с помощью функции 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)
Например, если вы хотите экспортировать только имена, сделайте следующее:
$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);