Dalam pengaturcaraan PHP, tatasusunan berbilang dimensi ialah salah satu struktur data yang paling biasa. Tatasusunan berbilang dimensi bermakna setiap elemen dalam tatasusunan juga merupakan tatasusunan jenis ini lebih berstruktur daripada tatasusunan satu dimensi. Apabila beroperasi pada tatasusunan berbilang dimensi, kita perlu mengetahui cara mendapatkan nilai Artikel ini akan memperkenalkan cara mendapatkan tatasusunan berbilang dimensi.
1. Operasi asas
Mendapatkan nilai dalam tatasusunan dua dimensi adalah sangat mudah, hanya gunakan kurungan segi empat sama dan subskrip seperti tatasusunan satu dimensi. Contohnya: $arr0, jadi anda boleh mendapatkan nilai kedua dalam elemen pertama dalam tatasusunan.
2. Loop traversal
Jika tatasusunan berbilang dimensi mempunyai lebih daripada dua dimensi, penggunaan operasi asas akan menjadi sangat menyusahkan. Pada masa ini kita boleh menggunakan gelung untuk melintasi dan mendapatkan nilai dengan mudah dalam tatasusunan berbilang dimensi. Kod tersebut dilaksanakan seperti berikut:
foreach($arr as $key1=>$val1){ foreach($val1 as $key2=>$val2){ echo $arr[$key1][$key2]; } }
Seperti yang anda lihat, kami mendapat subskrip dan nilai tatasusunan satu dimensi dalam gelung luar Selepas memasuki gelung dalam, kami mendapat subskrip dan nilai tatasusunan dua dimensi, dan kemudian keluarkan Itu sahaja.
3. Pemerolehan rekursif
Jika tatasusunan berbilang dimensi mempunyai banyak dimensi, ia akan menjadi sangat menyusahkan untuk menggunakan lintasan gelung. Pada masa ini kita boleh menggunakan fungsi rekursif untuk mendapatkan nilai dalam tatasusunan berbilang dimensi.
Kaedah pelaksanaan fungsi rekursif adalah untuk menentukan sama ada elemen yang diperoleh pada masa ini ialah tatasusunan, dan jika ya, teruskan mendapatkannya secara rekursif sehingga nilai dimensi terakhir diperoleh. Kod sampel adalah seperti berikut:
function get_val($arr){ foreach($arr as $val){ if(is_array($val)){ get_val($val); }else{ echo $val; } } }
Seperti yang anda lihat, kami mula-mula menentukan sama ada nilai yang diperolehi sekarang ialah tatasusunan Jika ya, kami akan terus memanggil fungsi rekursif . Dengan cara ini, tidak kira berapa banyak dimensi tatasusunan itu, anda boleh menggunakan fungsi rekursif untuk mendapatkan nilai di dalamnya.
4. Gunakan array_column
PHP menyediakan fungsi array_column yang boleh membantu kami mendapatkan lajur yang ditentukan dalam tatasusunan berbilang dimensi. Sintaks fungsi ini adalah seperti berikut:
array_column($arr, $column_key [, $index_key]);
Antaranya, parameter $arr ialah tatasusunan nilai yang akan diperolehi, parameter $column_key ialah subskrip lajur yang akan diperolehi, dan Parameter $index_key ialah subskrip tatasusunan baharu. Jika $index_key tidak dinyatakan, indeks berangka bermula dari 0 akan digunakan.
Kod sampel adalah seperti berikut:
$arr = array( array('id'=>1, 'name'=>'Tom', 'age'=>18), array('id'=>2, 'name'=>'Jerry', 'age'=>20), array('id'=>3, 'name'=>'Lucy', 'age'=>22) ); $name_arr = array_column($arr, 'name');
Dalam kod di atas, kami menggunakan fungsi array_column untuk mendapatkan lajur 'nama' dalam tatasusunan $arr. Tatasusunan $name_arr terakhir ialah koleksi semua nama dalam tatasusunan, di mana setiap elemen ialah rentetan yang sepadan dengan nilai 'nama' setiap elemen dalam tatasusunan.
Ringkasan:
Dalam PHP, mendapatkan tatasusunan berbilang dimensi ialah operasi yang sangat asas dan penting. Melalui pengenalan artikel ini, kita boleh mengetahui beberapa kaedah pemerolehan seperti operasi asas, lintasan gelung, pemerolehan rekursif, fungsi lajur array, dll. Kaedah pemerolehan yang berbeza sesuai untuk senario yang berbeza dan boleh dipilih dan digunakan mengikut situasi sebenar.
Atas ialah kandungan terperinci Bagaimana untuk mendapatkan tatasusunan multidimensi dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!