Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menukar jadual php kepada tatasusunan dua dimensi
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.
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.
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.
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:
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!