Как сохранить один столбец из многомерного массива в виде файла .csv?

Следующий код экспортирует весь массив в файл .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);
?>

-2

Решение

сделать с массивом, прежде чем положить его в 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.

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

Вы можете сделать это, удалив поля, которые вы хотите исключить из массива $ 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)
0

Например, если вы хотите экспортировать только имена, сделайте следующее:

$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);
-1
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector