Terence Bruwer
Terence Bruwer

Reputation: 239

csv parser for header and detail lines in one csv file

I have a requirement to import an order from a customer which will contain about 4 fields on the first row as their customer data i.e.

customer number, order date, order no, delivery date

The next X number of lines will contain two fields with the product code and quantity required.

I have other procedures that will pull in a standard price list etc and parse, but I am struggling to get my head around how to break apart the CSV file into the two different sections.

Any help or ideas on how this can be achieved will be appreciated

Upvotes: 1

Views: 806

Answers (2)

Veve
Veve

Reputation: 6758

Using the parsecsv library you could do this :

//get customer data first
// limit the number of returned rows.
$csv->limit = 1;
// Parse 'order.csv' using automatic delimiter detection.
$csv->auto('order.csv');
//retrieve the customer data
$customer_data = $csv->data;

//get order details after
//skip the first line
$csv->offset = 1;
// Parse 'order.csv' using automatic delimiter detection.
$csv->auto('order.csv');
$order_details = $csv->data;

Upvotes: 2

Saqueib
Saqueib

Reputation: 3520

I will suggest using this library, its will give you column by name similar to sql result array

customer number, order date, order no, delivery date

Parse it in a way you want https://github.com/parsecsv/parsecsv-for-php

example

require_once 'parsecsv.lib.php';
$csv = new parseCSV('data.csv');
print_r($csv->data);

Upvotes: 3

Related Questions