Tôi sử dụng thư viện này để chuyển đổi mảng sang một số định dạng dữ liệu khác hoặc ngược lại.
Ở đó, bạn có thể tìm thấy Định dạng thư viện / lớp (Format.php) mà bạn có thể sử dụng để chuyển đổi CSV thành mảng sau đó lưu nó vào cơ sở dữ liệu của bạn. Lớp này cũng hỗ trợ định dạng khác:
- xml - hầu hết mọi ngôn ngữ lập trình đều có thể đọc XML
- json - hữu ích cho JavaScript và các ứng dụng PHP ngày càng tăng.
- csv - mở bằng các chương trình bảng tính
- html - một bảng HTML đơn giản
- php - Biểu diễn mã PHP có thể là eval () ’ed
- serialize - Dữ liệu được tuần tự hóa có thể không được serialize trong PHP
CHỈNH SỬA:
Thư viện này hoạt động trên CSV với dấu phân cách "\ n" trên mỗi hàng và "," trên mỗi cột, bạn có thể sử dụng nó như sau:
$this->load->library('format');
$string_csv = "YOUR CSV";
$result = $this->format->factory($string_csv, 'csv')->to_array();
var_dump($result);
Chỉ đơn giản vậy thôi. Tuy nhiên, như tôi đã nói ở trên nếu bạn có một dấu phân cách khác thì bạn phải điều chỉnh thư viện theo nhu cầu của mình. Đây là hàm chính để chuyển đổi CSV thành mảng:
Hàmfunction _from_csv($string)
{
$data = array();
// Splits
$rows = explode("\n", trim($string));
$headings = explode(',', array_shift($rows));
foreach ($rows as $row)
{
// The substr removes " from start and end
$data_fields = explode('","', trim(substr($row, 1, -1)));
if (count($data_fields) == count($headings))
{
$data[] = array_combine($headings, $data_fields);
}
}
return $data;
}
CHỈNH SỬA 2:
Ví dụ của tôi sẽ hoạt động trên định dạng CSV chuẩn này:
Heading1, Heading2, Heading3
"1","John","London"
"2","Brian","Texas"