function parse_csv( $csv_file, $title_row = -1, $start_row = 0, $key_cal = -1, $length = 0, $delimiter = ',', $enclosure = '"' ) {
$results = FALSE;
if ( file_exists($csv_file) && ($fp = fopen($csv_file, 'r')) ) {
$row = 0;
$results = array();
$col_name = array();
while ( $field_array = fgetcsv($fp, $length, $delimiter, $enclosure) ) {
if ( $row === $title_row ) {
$col = 0;
foreach ($field_array as $value) {
$col_name[$col] = !empty($value) ? $value : $col;
$col++;
}
}
if ( $row >= $start_row ) {
$result = array();
$col = 0;
foreach ($field_array as $value) {
$key = isset($col_name[$col]) ? $col_name[$col] : $col;
$result[$key] = $value;
$col++;
}
$key = $row;
if ( is_numeric($key_cal) ) {
$key =
( $key_cal >= 0 && isset($col_name[$key_cal]) )
? $result[$col_name[$key_cal]]
: $row;
} else {
foreach ($col_name as $value) {
if ( $key_cal === $value ) {
$key = $result[$value];
break;
}
}
}
$results[$key] = $result;
}
$row++;
}
fclose($fp);
}
return $results;
}
コメントを残す