fork(1) download
  1. <?php
  2.  
  3. function csvParse($input, $callback = false){
  4. $results = [];
  5. $raw_array = (is_file($input)) ? array_map('str_getcsv', file($input)) : array_map('str_getcsv', explode("\n", $input));
  6. $array = array_splice($raw_array, 1, count($raw_array));
  7. foreach($raw_array[0] as $c) $columns[] = $c;
  8. foreach($array as $key0 => $val0) foreach($val0 as $key1 => $val1) $results[$key0][$columns[$key1]] = $val1;
  9.  
  10. if(is_callable($callback) && !empty($results)) call_user_func_array($callback, array($results));
  11. elseif(!empty($results)) return $results;
  12. else throw new Exception("Results Empty: Can not read the string or open file.");
  13. }
  14.  
  15. $file = "csv/file1.csv";
  16. $str = "name,age,occupation,city\nCrimin4L,24,Programmer,New York\nMrAwesome,20,Gamer,Los Angeles";
  17.  
  18. $arr = csvParse($str);
  19. print_r(json_encode($arr, JSON_PRETTY_PRINT));
Success #stdin #stdout 0.02s 26316KB
stdin
Standard input is empty
stdout
[
    {
        "name": "Crimin4L",
        "age": "24",
        "occupation": "Programmer",
        "city": "New York"
    },
    {
        "name": "MrAwesome",
        "age": "20",
        "occupation": "Gamer",
        "city": "Los Angeles"
    }
]