Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menukar jadual php kepada tatasusunan dua dimensi

Bagaimana untuk menukar jadual php kepada tatasusunan dua dimensi

PHPz
PHPzasal
2023-04-20 09:08:01594semak imbas

Dalam PHP, jadual ialah salah satu format data biasa Kami biasanya perlu memproses data dalam jadual, seperti menapis, menyusun, dsb. Pada ketika ini, menukar jadual kepada tatasusunan dua dimensi ialah pilihan yang baik, kerana tatasusunan ialah salah satu struktur data yang paling fleksibel dan cekap dalam PHP.

Jadi, bagaimana untuk menukar jadual kepada tatasusunan dua dimensi dalam PHP? Mari perkenalkan secara terperinci di bawah.

  1. Gunakan fungsi PHP terbina dalam fgetcsv() untuk menghuraikan jadual dalam format CSV

Jadual dalam format CSV (Comma-Separated Values) memisahkan setiap baris dengan koma diakhiri dengan aksara baris baharu. Kita boleh menggunakan fungsi terbina dalam PHP fgetcsv() untuk membaca setiap baris data dalam jadual CSV dan menukarnya kepada bentuk tatasusunan. Berikut ialah kod contoh ringkas:

$handle = fopen("data.csv", "r");
$data = [];
while (($row = fgetcsv($handle)) !== false) {
    $data[] = $row;
}
fclose($handle);

Dalam kod di atas, fail sumber data mula-mula dibuka melalui fungsi fopen() dan kemudian data jadual dalam fail sumber data dibaca baris demi garisan melalui gelung while. Setiap baris dihuraikan menggunakan fungsi fgetcsv() dan data yang dihuraikan disimpan dalam tatasusunan $data dalam bentuk tatasusunan. Akhir sekali tutup fail sumber data.

  1. Gunakan perpustakaan PHPExcel untuk menghuraikan jadual dalam format Excel

Jika anda perlu memproses jadual dalam format Excel, anda boleh menggunakan perpustakaan PHPExcel untuk menukar jadual kepada dua- tatasusunan dimensi. Pustaka PHPExcel ialah perpustakaan kelas sumber terbuka PHP yang boleh mengendalikan pelbagai format hamparan, seperti Excel, CSV, dsb.

Berikut ialah contoh kod mudah:

require_once 'PHPExcel/IOFactory.php';
$excel = PHPExcel_IOFactory::load("data.xlsx");
$data = array();
$sheet = $excel->getActiveSheet();
foreach ($sheet->getRowIterator() as $rowKey => $row) {
    $cellIterator = $row->getCellIterator();
    $cellIterator->setIterateOnlyExistingCells(false);
    $temp = array();
    foreach ($cellIterator as $cellKey => $cell) {
        $temp[] = $cell->getValue();
    }
    $data[] = $temp;
}

Dalam kod di atas, mula-mula dengan memperkenalkan perpustakaan PHPExcel, selepas memuatkan fail sumber data Excel, gunakan fungsi getRowIterator() untuk dapatkan setiap data baris, dan kemudian gunakan fungsi getCellIterator() untuk mendapatkan data bagi setiap sel dalam setiap baris. Akhir sekali, setiap baris data disimpan dalam tatasusunan dua dimensi untuk pemprosesan dan operasi data seterusnya.

  1. Fungsi penukaran format data

Selain daripada dua kaedah di atas, kami juga boleh menggunakan fungsi penukaran data tersuai untuk melengkapkan penukaran daripada jadual kepada dua- tatasusunan dimensi. Kaedah ini memerlukan pemprosesan yang berbeza mengikut format jadual yang berbeza, yang agak menyusahkan, tetapi ia boleh mengawal proses penukaran format data secara fleksibel. Berikut ialah kod sampel mudah:

function table2array($table, $headerIndex = 0, $skipEmptyRow = true, $intval = true)
{
    $rows = explode("\n", $table);
    $header = array();
    $data = array();
    foreach ($rows as $key => $row) {
        if ($skipEmptyRow && trim($row) == '') {
            continue;
        }
        if ($headerIndex == $key) {
            $header = explode("\t", $row);
            continue;
        }
        $cols = explode("\t", $row);
        $rowData = array();
        foreach ($cols as $col) {
            if ($intval && is_numeric($col)) {
                $rowData[] = intval($col);
            } else {
                $rowData[] = $col;
            }
        }
        $data[] = array_combine($header, $rowData);
    }
    return $data;
}

Dalam kod di atas, kami menukar data jadual kepada tatasusunan dua dimensi melalui fungsi tersuai. Parameter fungsi termasuk:

  • $table: data jadual, format ialah rentetan.
  • $headerIndex: Indeks baris di mana pengepala berada, lalainya ialah 0.
  • $skipEmptyRow: Sama ada hendak mengabaikan baris kosong, lalainya adalah benar.
  • $intval: Sama ada hendak menukar nombor kepada integer, lalainya adalah benar.

Di dalam fungsi, fungsi explode() mula-mula digunakan untuk memisahkan rentetan kepada bentuk tatasusunan mengikut pembatas yang ditentukan, dan kemudian menukar dan memasang jenis data. Akhir sekali, setiap baris data disimpan dalam tatasusunan $data dalam bentuk tatasusunan bersekutu, dan tatasusunan dua dimensi ini dikembalikan.

Ringkasan

Artikel ini memperkenalkan tiga cara biasa untuk menukar jadual kepada tatasusunan dua dimensi. Antaranya, fungsi fgetcsv() sesuai untuk format CSV, pustaka PHPExcel sesuai untuk format Excel, dan fungsi penukaran data tersuai sesuai untuk jadual dalam format lain. Dalam pembangunan sebenar, kita secara fleksibel boleh memilih kaedah yang sesuai untuk senario kita sendiri mengikut keperluan.

Atas ialah kandungan terperinci Bagaimana untuk menukar jadual php kepada tatasusunan dua dimensi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn