I am trying to reorder columns that are in the CSV file that I am importing in PHP. The order should be ID, Carrier, TrackingNumber, ShippingDate
My code looks like this:
$rename = array('Customer PO#'=>'ID', 'Ship Via'=>'Carrier', 'Tracking Number'=>'TrackingNumber', 'Ship Date'=>'ShippingDate');
$csv = array_map('str_getcsv', file('file.csv'));
foreach($csv[0] as $col => $colname) {
if(!empty($rename[$colname])) $csv[0][$col] = $rename[$colname];
}
array_walk($csv, function(&$a) use ($csv) {
$a = array_combine($csv[0], $a);
if (array_key_exists('Product ID', $a)) {
unset($a['Product ID']);
}
if (array_key_exists('Customer Name', $a)) {
unset($a['Customer Name']);
}
});
var_dump($csv);
My array looks like this:
[1]=>
array(4) {
["ShippingDate"]=>
string(10) "11/21/2018"
["ID"]=>
string(5) "59098"
["Carrier"]=>
string(16) "USPS First Class"
["TrackingNumber"]=>
string(22) "940011020088289578733355"
}