JBZoo\Utils\Csv::parse PHP Method

parse() public static method

public static parse ( string $csvFile, string $delimiter = ';', string $enclosure = '"', boolean $hasHeader = true ) : array
$csvFile string
$delimiter string
$enclosure string
$hasHeader boolean
return array
    public static function parse($csvFile, $delimiter = ';', $enclosure = '"', $hasHeader = true)
    {
        $result = array();
        $headerKeys = array();
        $rowCounter = 0;
        if (($handle = fopen($csvFile, "r")) !== false) {
            while (($row = fgetcsv($handle, self::LENGTH_LIMIT, $delimiter, $enclosure)) !== false) {
                if ($rowCounter === 0 && $hasHeader) {
                    $headerKeys = $row;
                } else {
                    if ($hasHeader) {
                        $assocRow = array();
                        foreach ($headerKeys as $colIndex => $colName) {
                            $assocRow[$colName] = $row[$colIndex];
                        }
                        $result[] = $assocRow;
                    } else {
                        $result[] = $row;
                    }
                }
                $rowCounter++;
            }
            fclose($handle);
        }
        return $result;
    }

Usage Example

Beispiel #1
0
 public function testParse()
 {
     $result = Csv::parse(__DIR__ . '/resources/parse.csv', ';', '"', true);
     isSame(array(array('id' => '1', 'name' => 'qwerty', 'some num' => '42'), array('id' => '2', 'name' => 'Some word', 'some num' => '4242')), $result);
     $result = Csv::parse(__DIR__ . '/resources/parse.csv', ';', '"', false);
     isSame(array(array('id', 'name', 'some num'), array('1', 'qwerty', '42'), array('2', 'Some word', '4242')), $result);
 }