Cara Membaca CSV ke Array di PHP

oleh Vincy. Terakhir diubah pada 2 November 2022.

Ada banyak cara untuk membaca file CSV ke array. Alat yang dihosting secara online menyediakan antarmuka untuk melakukan ini. Selain itu, sangat mudah untuk membuat antarmuka pengguna khusus untuk tujuan membaca CSV ke array.

Di PHP, ia memiliki lebih dari satu fungsi asli untuk membaca data CSV.

  • fgetcsv() – Ini membaca pointer file CSV dan membaca baris khususnya ke pegangan file.
  • str_getcsv() -Membaca string CSV input ke dalam array.

Artikel ini menyediakan cara alternatif untuk membaca file CSV ke array PHP. Juga, ini menunjukkan bagaimana mempersiapkan HTML dari data array dari input CSV.

Contoh cepat

Contoh ini membaca file CSV input menggunakan fungsi PHP fgetcsv(). Fungsi ini membutuhkan titik file untuk merujuk ke baris untuk membaca kolom baris CSV.

<?php

// PHP function to read CSV to array
function csvToArray($csv)
{
    // create file handle to read CSV file
    $csvToRead = fopen($csv, 'r');

    // read CSV file using comma as delimiter
    while (! feof($csvToRead)) {
        $csvArray[] = fgetcsv($csvToRead, 1000, ',');
    }

    fclose($csvToRead);
    return $csvArray;
}

// CSV file to read into an Array
$csvFile="csv-to-read.csv";
$csvArray = csvToArray($csvFile);

echo '<pre>';
print_r($csvArray);
echo '</pre>';
?>

Program ini menetapkan referensi aliran file CSV dan parameter lain untuk membaca catatan dalam satu lingkaran.

Iterasi loop mendorong data baris ke dalam array. Push array PHP terjadi menggunakan salah satu metode yang telah kita lihat di artikel tertaut.

Simpan nilai yang dipisahkan koma di bawah ini ke file csv-to-array.csv. Itu harus dibuat sebagai input dari program di atas.

csv-to-array.csv

Lion,7,Wild
Tiger,9,Wild
Dog,4,Domestic

Keluaran:

Program di atas mengembalikan array berikut setelah membaca data file CSV input.

Array
(
    [0] => Array
        (
            [0] => Lion
            [1] => 7
            [2] => Wild
        )

    [1] => Array
        (
            [0] => Tiger
            [1] => 9
            [2] => Wild
        )

    [2] => Array
        (
            [0] => Dog
            [1] => 4
            [2] => Domestic
        )

)

csv ke array PHP

Petakan str_getcsv() untuk membaca CSV dan mengubahnya menjadi array PHP

Program ini akan cocok jika Anda ingin melewatkan langkah penulisan loop. Ini menghemat usaha pengembang. Tetapi pemrosesan latar belakang akan sama dengan program di atas.

File PHP() mengubah seluruh CSV menjadi array. Kemudian, array_map menyetel fungsi str_getcsv() sebagai panggilan balik untuk mengulangi larik baris file CSV.

str_getcsv() mengimpor data baris CSV ke dalam larik. Dalam artikel sebelumnya, kita telah melihat tentang penanganan pembacaan file CSV dan operasi lain seperti impor, dan ekspor.

Variabel $csvArray yang dihasilkan akan berisi data CSV lengkap dalam array multidimensi.

Output dari program ini akan mirip dengan contoh cepat.

<?php
// a one-line simple option to reade CSV to array
// it uses PHP str_getcsv
$csvArray = array_map('str_getcsv', file('csv-to-read.csv'));
echo '<pre>';
print_r($csvArray);
echo '</pre>';
?>

Konversi CSV ke Array dan kemudian ubah array ke HTML

Contoh ini akan berguna jika Anda ingin menampilkan konten CSV di UI dalam bentuk tabel.

Sebagian besar, kode ini harus lebih berguna karena memiliki kemungkinan untuk menggunakannya dalam proyek waktu nyata. Namun, contoh lainnya adalah dasar-dasar yang juga penting untuk dipelajari tentang membaca CSV menggunakan PHP.

Kode ini mengulangi baris CSV dan membaca data kolom menggunakan fgetcsv() seperti yang dilakukan dalam contoh cepat.

Kemudian, membentuk struktur tabel HTML menggunakan data array CSV. Dalam tutorial sebelumnya, kita melihat kode untuk mengubah tabel HTML menjadi excel.

<?php

// PHP script to read CSV and convert to HTML table

// create file handle to read CSV file
$csvFile = fopen('csv-to-read.csv', 'r');

if ($csvFile !== FALSE) {
    echo "<table border=1 cellpadding=10>";
    while (($csvArray = fgetcsv($csvFile, 100, ',')) !== FALSE) {
        echo "<tr>";
        for ($i = 0; $i < count($csvArray); $i ++) {
            echo "<td>" . $csvArray[$i] . "</td>";
        }
        echo "</tr>";
    }
    echo "</table>";
    fclose($csvFile);
}
?>

Keluaran:

Program ini akan menampilkan tabel HTML di layar. Data baris berasal dari file CSV masukan.

csv ke html
Unduh

Kembali ke Atas

[ad_2]
Source link