Dalam PHP, matriks ialah struktur data grid segi empat tepat yang terdiri daripada baris dan lajur. Dalam aplikasi praktikal, selalunya perlu untuk menukar matriks kepada tatasusunan dua dimensi untuk diproses. Artikel ini akan memperkenalkan cara menggunakan PHP untuk menukar matriks kepada tatasusunan dua dimensi.
Mula-mula, mari kita lihat contoh matriks mudah:
$matrix = array( array(1, 2, 3), array(4, 5, 6), array(7, 8, 9) );
Matriks di atas terdiri daripada 3 baris dan 3 lajur, dan setiap elemen sepadan dengan integer. Kami menukarnya kepada tatasusunan dua dimensi, iaitu, menambah setiap elemen matriks kepada Tatasusunan baharu, seperti berikut:
$array = array(); foreach ($matrix as $row) { foreach ($row as $cell) { $array[] = $cell; } }
Tatasusunan dua dimensi yang terhasil pada masa ini ialah: [1, 2, 3, 4, 5, 6, 7, 8, 9]
, setiap Elemen ditambahkan pada tatasusunan dalam susunan baris-utama.
Walau bagaimanapun, kerumitan kaedah ini adalah O(n²) dan kurang cekap apabila memproses data matriks yang besar. Di bawah ini kami akan memperkenalkan kaedah berdasarkan penunjuk tatasusunan yang boleh menukar matriks kepada tatasusunan dua dimensi dengan kerumitan O(n).
Pertama, anda perlu menggunakan fungsi reset()
untuk meletakkan penunjuk ke elemen pertama matriks.
reset($matrix);
Seterusnya, anda perlu menggunakan fungsi current()
untuk mendapatkan elemen ditunjuk oleh penunjuk semasa, kemudian tambahkannya pada tatasusunan baharu dan gunakan fungsi next()
untuk menggerakkan penunjuk kepada elemen seterusnya.
$array = array(); while ($row = current($matrix)) { while ($cell = current($row)) { $array[] = $cell; next($row); } next($matrix); reset($row); }
Hasil yang diperolehi pada masa ini adalah sama seperti sebelum ini, tetapi kerana loop nesting tidak digunakan, kecekapan adalah lebih tinggi, terutamanya apabila memproses data matriks berskala besar.
Akhir sekali, kami menyediakan kod sampel lengkap untuk rujukan.
$matrix = array( array(1, 2, 3), array(4, 5, 6), array(7, 8, 9) ); reset($matrix); $array = array(); while ($row = current($matrix)) { while ($cell = current($row)) { $array[] = $cell; next($row); } next($matrix); reset($row); } print_r($array);
Di atas ialah dua kaedah untuk menukar matriks PHP kepada tatasusunan dua dimensi. Saya percaya ia akan membantu pembaca yang berurusan dengan data matriks.
Atas ialah kandungan terperinci Cara menggunakan PHP untuk menukar matriks kepada tatasusunan dua dimensi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!