PHP ialah bahasa pengaturcaraan yang popular dengan bahasa pengaturcaraan yang berkuasa dan sintaks fleksibel yang membolehkan pembangun mengendalikan pelbagai jenis dan struktur data dengan mudah. Tatasusunan berbilang dimensi dalam PHP ialah salah satu struktur data yang penting, kebanyakannya digunakan untuk menyimpan dan menyusun data yang kompleks, dan menyediakan kaedah yang kaya untuk mengendalikan data ini. Dalam PHP, cara mencari elemen dalam tatasusunan berbilang dimensi ialah masalah biasa Artikel ini akan meneroka isu berkaitan carian tatasusunan berbilang dimensi.
Dalam PHP, tatasusunan berbilang dimensi bersarang daripada berbilang tatasusunan dan setiap tatasusunan boleh mengandungi tatasusunan lain. Berikut ialah contoh tatasusunan berbilang dimensi yang ringkas:
$employees = array( array("John", "Doe", 25), array("Jane", "Doe", 30), array("Bob", "Smith", 35) );
Tatasusunan berbilang dimensi ini mewakili maklumat pekerja syarikat Setiap pekerja terdiri daripada tiga nilai: nama pertama, nama keluarga dan umur. Tatasusunan ini mempunyai tiga elemen, setiap elemen adalah tatasusunan. Untuk mengakses elemen kedua tatasusunan (iaitu maklumat pekerja kedua), anda boleh menggunakan kod berikut:
echo $employees[1][0] . " " . $employees[1][1] . " is " . $employees[1][2] . " years old";
Ini akan mengeluarkan: "Jane Doe berumur 30 tahun".
Andaikan tatasusunan berbilang dimensi kami mengandungi lebih banyak maklumat, seperti ID pekerja, jabatan, jawatan, dsb. Kita boleh mencari elemen yang memenuhi kriteria tertentu dengan menggelung seluruh tatasusunan. Contohnya, untuk mencari ID pekerja bernama "John Doe" anda akan menggunakan kod berikut:
foreach ($employees as $employee) { if ($employee[0] == "John" && $employee[1] == "Doe") { echo "John Doe's ID is " . $employee[3]; break; } }
Ini akan mengeluarkan: "ID John Doe ialah 123".
Kelemahan kaedah ini ialah ia memerlukan merentasi keseluruhan tatasusunan untuk mencari elemen yang diperlukan, jadi ia menjadi kurang cekap apabila saiz tatasusunan bertambah.
Untuk menyelesaikan masalah di atas, kita boleh menggunakan tatasusunan bersekutu. Tatasusunan bersekutu mengaitkan rentetan indeks dengan nilai dan bukannya menggunakan indeks berangka seperti tatasusunan biasa. Menggunakan tatasusunan bersekutu boleh menjadikan kod anda lebih mudah dibaca dan berskala.
Berikut ialah versi diperbaik bagi contoh di atas, menggunakan tatasusunan bersekutu untuk mencari ID pekerja tertentu:
$employees = array( array("id" => "123", "first_name" => "John", "last_name" => "Doe", "age" => 25), array("id" => "124", "first_name" => "Jane", "last_name" => "Doe", "age" => 30), array("id" => "125", "first_name" => "Bob", "last_name" => "Smith", "age" => 35) ); foreach ($employees as $employee) { if ($employee["first_name"] == "John" && $employee["last_name"] == "Doe") { echo "John Doe's ID is " . $employee["id"]; break; } }
Ini juga akan mengeluarkan: "ID John Doe ialah 123" .
Mencari tatasusunan berbilang dimensi menggunakan tatasusunan bersekutu adalah lebih cekap daripada menggunakan carian linear kerana ia menyediakan carian yang lebih pantas dan memudahkan untuk menambah atau mengalih keluar elemen.
Fungsi array_column dalam PHP boleh mengembalikan tatasusunan diindeks, di mana setiap elemen diekstrak daripada tatasusunan input dengan yang ditentukan nilai kunci. Gunakan fungsi ini untuk mengekstrak nilai kunci tertentu dengan mudah daripada tatasusunan berbilang dimensi.
Berikut ialah contoh menggunakan fungsi array_column untuk mencari tatasusunan berbilang dimensi:
$employees = array( array("id" => "123", "first_name" => "John", "last_name" => "Doe", "age" => 25), array("id" => "124", "first_name" => "Jane", "last_name" => "Doe", "age" => 30), array("id" => "125", "first_name" => "Bob", "last_name" => "Smith", "age" => 35) ); $ids = array_column($employees, "id"); print_r($ids);
Ini akan mengeluarkan:
Array ( [0] => 123 [1] => 124 [2] => 125 )
Fungsi array_column juga boleh digunakan untuk mendapatkan semula nilai daripada tatasusunan berbilang dimensi Ekstrak nilai berbilang kunci dan jana tatasusunan baharu.
Selain mencari nilai melalui kunci, kita juga boleh menggunakan fungsi array_search untuk mencari nilai dalam tatasusunan berbilang dimensi. Fungsi array_search mengembalikan kunci yang sepadan dengan nilai yang ditentukan, atau palsu jika tidak dijumpai.
Berikut ialah contoh mencari nilai tertentu dalam tatasusunan berbilang dimensi:
$employees = array( array("id" => "123", "first_name" => "John", "last_name" => "Doe", "age" => 25), array("id" => "124", "first_name" => "Jane", "last_name" => "Doe", "age" => 30), array("id" => "125", "first_name" => "Bob", "last_name" => "Smith", "age" => 35) ); $key = array_search("Bob", array_column($employees, "first_name")); echo "Bob's information:" . PHP_EOL; print_r($employees[$key]);
Ini akan menghasilkan:
Bob's information: Array ( [id] => 125 [first_name] => Bob [last_name] => Smith [age] => 35 )
Terdapat banyak cara untuk mencari tatasusunan berbilang dimensi dalam PHP. Kita boleh menggunakan kaedah seperti carian linear, tatasusunan bersekutu, fungsi lajur tatasusunan dan fungsi carian_tatasusunan. Kaedah yang hendak dipilih bergantung pada senario aplikasi dan struktur data tertentu. Apabila bekerja dengan tatasusunan berbilang dimensi, adalah penting untuk memahami struktur dan jenis data tatasusunan dan memilih kaedah carian yang sesuai dengan sewajarnya.
Atas ialah kandungan terperinci Bagaimana untuk mencari elemen dalam tatasusunan berbilang dimensi php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!