3v4l.org

run code in 300+ PHP versions simultaneously
<?php $csv = <<<TXT "1","July 1999"," 2,782,546 "," $17.38 "," $338,545.98 "," 3,004 ","" "2","August 1999"," 2,739,441 "," $18.68 "," $153,343.98 "," 3,023 ","" "3","September 1999"," 2,650,431 "," $20.86 "," $308,929.17 "," 3,042 ","" TXT; $data = []; foreach ( array_map('str_getcsv', explode("\n\n", $csv)) as $row ) { $data[$row[1]] = array_slice($row, 2, -1); } $result = []; foreach ($data as $k => $row) { foreach ($row as $i => $v) { $result[$i][$k] = trim($v); } } var_export($result);
Output for 8.4.1 - 8.4.14
Deprecated: str_getcsv(): the $escape parameter must be provided as its default value will change in /in/X2T5l on line 13 Deprecated: str_getcsv(): the $escape parameter must be provided as its default value will change in /in/X2T5l on line 13 Deprecated: str_getcsv(): the $escape parameter must be provided as its default value will change in /in/X2T5l on line 13 array ( 0 => array ( 'July 1999' => '2,782,546', 'August 1999' => '2,739,441', 'September 1999' => '2,650,431', ), 1 => array ( 'July 1999' => '$17.38', 'August 1999' => '$18.68', 'September 1999' => '$20.86', ), 2 => array ( 'July 1999' => '$338,545.98', 'August 1999' => '$153,343.98', 'September 1999' => '$308,929.17', ), 3 => array ( 'July 1999' => '3,004', 'August 1999' => '3,023', 'September 1999' => '3,042', ), )
Output for 7.4.0 - 7.4.33, 8.0.1 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.26
array ( 0 => array ( 'July 1999' => '2,782,546', 'August 1999' => '2,739,441', 'September 1999' => '2,650,431', ), 1 => array ( 'July 1999' => '$17.38', 'August 1999' => '$18.68', 'September 1999' => '$20.86', ), 2 => array ( 'July 1999' => '$338,545.98', 'August 1999' => '$153,343.98', 'September 1999' => '$308,929.17', ), 3 => array ( 'July 1999' => '3,004', 'August 1999' => '3,023', 'September 1999' => '3,042', ), )

preferences:
114.84 ms | 410 KiB | 5 Q