Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk menanyakan nilai dalam tatasusunan dua dimensi dalam php
PHP ialah bahasa pengaturcaraan yang digunakan secara meluas dalam pembangunan web Ia mempunyai fungsi operasi tatasusunan yang berkuasa. Dalam PHP, tatasusunan adalah salah satu jenis data yang paling penting dan biasa digunakan. Struktur data ini membolehkan pembangun menyimpan satu siri nilai yang berkaitan dan mendapatkan serta memanipulasi nilai tersebut daripadanya.
Dalam PHP, tatasusunan dua dimensi ialah jenis tatasusunan khas di mana setiap elemen tatasusunan mengandungi tatasusunan. Struktur data ini biasanya digunakan untuk menyimpan matriks, jadual dan struktur data kompleks yang lain. Memandangkan tatasusunan dua dimensi mengandungi berbilang tatasusunan, pendekatan berbeza diperlukan semasa membuat pertanyaan.
Artikel ini akan memperkenalkan kaedah yang berbeza untuk menyoal nilai dalam tatasusunan dua dimensi dalam PHP.
Kaedah 1: Gunakan gelung foreach
Dalam PHP, anda boleh melintasi semua elemen tatasusunan dalam tatasusunan dua dimensi menggunakan gelung foreach. Berikut ialah contoh tatasusunan 2D:
$students = array(
array('name' => 'John', 'age' => 20, 'grade' => 'A'), array('name' => 'Jane', 'age' => 21, 'grade' => 'B'), array('name' => 'Jim', 'age' => 22, 'grade' => 'C')
);
Sekarang, kami ingin mendapatkan semula nama " pelajar Jim.
Kita boleh menggunakan gelung foreach untuk melingkari setiap pelajar dan menyemak sama ada nama mereka ialah "Jim". Jika padanan ditemui, gred pelajar boleh dikembalikan. Berikut ialah contoh kod untuk melaksanakan kaedah ini:
foreach ($pelajar sebagai $pelajar) {
if ($student['name'] == 'Jim') { echo $student['grade']; break; }
}
Dalam kod di atas, kami mengulang $ Setiap elemen dalam tatasusunan pelajar dan berikannya kepada tatasusunan baharu bernama $student. Seterusnya, kami menyemak sama ada kunci "nama" dalam $pelajar adalah sama dengan "Jim". Jika padanan ditemui, gunakan arahan gema untuk mengeluarkan nilai "gred" pelajar.
Perlu diambil perhatian bahawa memandangkan gelung foreach merentasi keseluruhan tatasusunan, apabila nilai yang diperlukan ditemui, kita perlu menggunakan perintah break untuk menghentikan carian. Kelemahan yang jelas bagi pendekatan ini ialah ia bergelung pada keseluruhan tatasusunan, dan boleh menyebabkan isu prestasi dalam tatasusunan besar.
Kaedah 2: Gunakan gelung for
Cara lain untuk menanyakan nilai dalam tatasusunan dua dimensi ialah menggunakan gelung for. Kaedah ini lebih pantas daripada menggunakan gelung foreach, dan kerana kita tahu kedudukan tatasusunan yang kita cari, lelaran gelung yang tidak perlu boleh dilangkau. Berikut ialah kod contoh untuk melaksanakan kaedah ini menggunakan gelung for:
for ($i = 0; $i < count($students); $i++) {
if ($students[$i]['name'] == 'Jim') { echo $students[$i]['grade']; break; }
}
Dalam coretan kod di atas, kami menggunakan gelung for untuk lelaran melalui setiap elemen dalam tatasusunan $students dan menggunakan pembolehubah $i untuk menjejaki lelaran semasa. Kami menyemak sama ada kunci "nama" setiap pelajar adalah sama dengan "Jim" dan jika padanan ditemui, kami menggunakan arahan gema untuk mengeluarkan nilai "gred" untuk pelajar tersebut.
Perlu diambil perhatian bahawa keadaan $i < count($students) digunakan untuk menyemak bahawa gelung tidak melebihi julat tatasusunan. Kami menggunakan perintah break untuk menghentikan gelung apabila kami menemui nilai yang diperlukan.
Kaedah 3: Gunakan fungsi array_column
Terdapat fungsi mudah dalam PHP yang dipanggil array_column(), yang boleh digunakan untuk mengembalikan nilai lajur tunggal daripada tatasusunan. Fungsi ini menerima dua parameter: tatasusunan dan nama lajur untuk dikembalikan. Berikut ialah kod sampel untuk menggunakan fungsi array_column() untuk mengembalikan lajur "gred" daripada tatasusunan $pelajar di atas:
$gred = array_column($pelajar, 'gred');
Sekarang, Kita boleh mencari nilai yang diperlukan hanya dengan menyemak sama ada tatasusunan $grades yang dikembalikan mengandungi nilai tertentu. Berikut ialah contoh kod untuk melaksanakan kaedah ini:
$student_name = 'Jim';
$grades = array_column($students, 'gred', 'name');
if (array_key_exists( $ student_name, $grades)) {
echo $grades[$student_name];
}
Dalam kod ini, gunakan fungsi array_column() untuk mendapatkan lajur "gred" dalam tatasusunan $students dan gunakan lajur "nama" Mencipta tatasusunan bersekutu $gred sebagai kunci. Seterusnya, kami menyemak sama ada tatasusunan $grades mengandungi kunci tertentu (iaitu nama pelajar) dan mengeluarkan nilai "gred" yang sepadan.
Ringkasan
Dalam PHP, terdapat banyak cara berbeza untuk menanyakan nilai dalam tatasusunan dua dimensi. Dalam artikel ini, kami merangkumi tiga kaedah yang paling biasa: menggunakan gelung foreach, menggunakan gelung for dan menggunakan fungsi array_column().
Menggunakan foreach atau for loop sesuai untuk tatasusunan kecil atau tatasusunan besar yang memerlukan keupayaan carian yang lebih berkuasa. Sebaliknya, fungsi array_column() lebih sesuai untuk menapis satu lajur. Dalam pembangunan sebenar, pembangun boleh memilih kaedah yang sesuai untuk menanyakan nilai dalam tatasusunan dua dimensi mengikut keperluan khusus.
Atas ialah kandungan terperinci Bagaimana untuk menanyakan nilai dalam tatasusunan dua dimensi dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!