Bisakah seseorang dengan ramah memberikan kode untuk membuat array dari file CSV menggunakan fgetcsv?
Saya telah menggunakan kode berikut untuk membuat larik dari file CSV sederhana, tetapi tidak berfungsi dengan benar ketika salah satu bidang saya memiliki banyak koma - seperti alamat.
$lines =file('CSV Address.csv');
foreach($lines as $data)
{
list($name[],$address[],$status[])
= explode(',',$data);
}
* Selain itu, str_getcsv tidak didukung oleh layanan hosting saya.
Kode di atas tidak berfungsi dengan contoh file CSV berikut. Kolom pertama adalah nama, kolom kedua adalah alamat, kolom ketiga adalah status perkawinan.
Scott L. Aranda,"123 Main Street, Bethesda, Maryland 20816",Single
Todd D. Smith,"987 Elm Street, Alexandria, Virginia 22301",Single
Edward M. Grass,"123 Main Street, Bethesda, Maryland 20816",Married
Aaron G. Frantz,"987 Elm Street, Alexandria, Virginia 22301",Married
Ryan V. Turner,"123 Main Street, Bethesda, Maryland 20816",Single
Jawaban:
Seperti yang Anda katakan di judul Anda, fgetcsv adalah cara yang tepat. Sangat mudah digunakan.
Anda akan ingin meletakkan lebih banyak pemeriksaan kesalahan di sana jika
fopen()
gagal, tetapi ini berfungsi untuk membaca file CSV baris demi baris dan mengurai baris menjadi array.sumber
list($names[], $addresses[], $statuses[]) = $line;
Saya pikir sintaks str_getcsv () jauh lebih bersih, juga tidak memerlukan CSV untuk disimpan di sistem file.
Atau untuk solusi baris demi baris:
Atau untuk solusi baris demi baris tanpa str_getcsv ():
sumber
Saya telah membuat fungsi yang akan mengubah string csv menjadi array. Fungsi tersebut mengetahui cara keluar dari karakter khusus, dan berfungsi dengan atau tanpa karakter enklosur.
Saya mencobanya dengan sampel csv Anda dan berfungsi seperti yang diharapkan!
sumber
sumber
Pertanyaan lama, tapi masih relevan untuk pengguna PHP 5.2. str_getcsv tersedia dari PHP 5.3. Saya telah menulis sebuah fungsi kecil yang bekerja dengan fgetcsv itu sendiri.
Di bawah ini adalah fungsi saya dari https://gist.github.com/4152628 :
Kembali
Mulailah Membaca CSV
sumber
Coba ini..
sumber
Fungsi ini akan mengembalikan array dengan nilai Header sebagai kunci array.
sumber
Untuk mendapatkan array dengan kunci yang tepat, Anda dapat mencoba ini:
sumber
Harap fin di bawah tautan ke fungsi dari @knagode, ditingkatkan dengan parameter lewati baris. https://gist.github.com/gabrieljenik/47fc38ae47d99868d5b3#file-csv_to_array
sumber
Saya menemukan kode yang cukup mendasar ini. Saya pikir ini bisa bermanfaat bagi siapa saja.
sumber
Jika Anda ingin setiap baris berada dalam array, dan setiap sel dalam baris dalam array:
sumber
Coba kode ini:
sumber
sumber
sumber