Я новичок в PHP и хотел бы иметь возможность читать в csv-файле, который имеет два столбца, один – это число (вроде как ID), тогда другое имеет целочисленное значение. Я искал функцию fgetcsv, но мне не удалось найти способ чтения определенного столбца из файла csv.
Я хотел бы получить все значения только из второго столбца, без заголовка.
Любой способ сделать это?
Это то, что у меня есть до сих пор:
$file = fopen('data.csv', 'r'); $line = fgetcsv($file);
И это некоторые примеры данных из файла csv:
ID,Value 1,243.00 2,243.00 3,243.00 4,243.00 5,123.11 6,243.00 7,180.00 8,55.00 9,243.00
Любая помощь будет оценена по достоинству.
Благодарю.
fgetcsv () только чтение одной строки файла за раз. Вам нужно будет прочитать файл в цикле, чтобы получить все:
$data = array(); while($row = fgetcsv($file)) { $data[] = $row; }
Заголовок, который вы можете пропустить, выполнив fgetcsv один раз за пределами цикла, чтобы прочитать / удалить значения заголовков. И если вы хотите только второй столбец, вы можете сделать:
$data[] = $row[1];
Однако, поскольку у вас есть данные, возможно, было бы полезно сохранить его, плюс добавьте ключ к вашему новому массиву с идентификационными значениями в csv, чтобы вы могли также иметь:
$data[$row[0]] = $row[1];
и тогда ваш красивый блестящий новый массив будет в значительной степени соответствовать тому, что находится в csv, но как массив, связанный с полем ID.
$csv = array_map("str_getcsv", file("data.csv", "r")); $header = array_shift($csv); // Seperate the header from data $col = array_search("Value", $header); foreach ($csv as $row) { $array[] = $row[$col]; } // Iterate through data set, creating array from Value column
$header = fgetcsv($h); $rows = array(); while ($row = fgetcsv($h)) { $rows []= array_combine($header, $row); }
$fp = fopen($filePath, "r+"); $header = fgetcsv($fp); while ($members = fgetcsv($fp)) { $i = 0; foreach ($members as $mem) { $membersArray[ $i ][ ] = $mem; $i++; } } $newArray = array_combine($header, array_map("array_filter",$membersArray));
Вы также можете использовать этот класс http://code.google.com/p/php-csv-parser/
<?php require_once 'File/CSV/DataSource.php'; $csv = new File_CSV_DataSource; $csv->load('data.csv'); var_export($csv->connect()); ?>