$files→getAllCSV()
Get all rows from a CSV file
This simplifies the reading of a CSV file by abstracting file-open, get-header, get-rows and file-close
operations into a single method call, where all those operations are handled internally. All you have to
do is call the $files->getAllCSV($filename) method once and it will return an array of arrays (one per row). This method will also skip over blank rows by default, unlike PHP’s fgetcsv() which will return a 1-column row
with null value.
This method is limited by available memory, so when working with potentially large files, you should use the
$files->getCSV() method instead, which reads the CSV file row-by-row rather than all at once.
Note for the method $options argument that the length, separator, enclosure and escape options
all correspond to the identically named PHP fgetcsv
arguments.
Example foods.csv file (first row is header):
Example of reading the foods.csv file above:
Available since version 3.0.197.
Examples
Food,Type,Color
Apple,Fruit,Red
Banana,Fruit,Yellow
Spinach,Vegetable,Green$rows = $files->getAllCSV('/path/to/foods.csv');
foreach($rows as $row) {
echo "Food: $row[Food] ";
echo "Type: $row[Type] ";
echo "Color: $row[Color] ";
}Usage
// basic usage
$array = $files->getAllCSV(string $filename);
// usage with all arguments
$array = $files->getAllCSV(string $filename, array $options = []);Arguments
| Name | Type(s) | Description |
|---|---|---|
$filename | string | CSV filename to read from |
$options (optional) | array |
|
Return value
array
API reference based on ProcessWire core version 3.0.252