Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Mengekalkan Baris Tatasusunan dengan Nilai Lajur Padanan daripada Tatasusunan Rata?
Kekalkan Baris Tatasusunan dengan Nilai Lajur Padanan daripada Tatasusunan Rata Berasingan
Diberi tatasusunan $arr1 dengan berbilang lajur dan tatasusunan rata kedua $ arr2 mengandungi senarai nilai lajur tertentu, objektifnya adalah untuk menapis $arr1 dan mengekstrak hanya baris di mana nilai dalam lajur tertentu sepadan dengan elemen dalam $arr2.
Penyelesaian:
Untuk melaksanakan tugas ini dengan cekap, array_uintersect() boleh digunakan. Fungsi asli ini menggunakan algoritma pengisihan semasa perbandingan untuk meningkatkan kelajuan pelaksanaan. Ia memerlukan dua tatasusunan dan fungsi panggil balik tersuai untuk menentukan logik perbandingan.
Dalam kod yang disediakan, fungsi panggil balik memanfaatkan penstrukturan tatasusunan untuk mengakses lajur id daripada setiap elemen $arr1 dan $arr2. Jika lajur id tidak wujud, ia lalai kepada nilai parameter.
Perbandingan menyemak sama ada nilai id daripada kedua-dua tatasusunan adalah sama, memastikan baris dalam $arr1 sepadan dengan nilai dalam $arr2. Hasilnya ialah tatasusunan baharu yang mengandungi hanya baris yang dikehendaki daripada $arr1.
Pendekatan ini menawarkan prestasi unggul kepada panggilan berulang in_array() disebabkan oleh panggilan fungsi yang diminimumkan dan masa pelaksanaan yang dioptimumkan.
Atas ialah kandungan terperinci Bagaimana untuk Mengekalkan Baris Tatasusunan dengan Nilai Lajur Padanan daripada Tatasusunan Rata?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!