Mencari Baris Tatasusunan dengan Nilai Lajur dalam Tatasusunan Rata
Dalam senario ini, anda diberi dua tatasusunan: tatasusunan asal, $arr1 , dengan berbilang lajur dan tatasusunan kedua, $arr2, mengandungi senarai nilai ID unik. Objektifnya adalah untuk memperhalusi $arr1 dengan memilih hanya baris yang mengandungi nilai ID yang terdapat dalam $arr2.
Penyelesaian yang sangat cekap untuk masalah ini terletak pada penggunaan fungsi array_uintersect(). Fungsi ini menggunakan panggilan balik tersuai untuk membandingkan elemen daripada kedua-dua tatasusunan input. Dalam panggilan balik tersuai ini, kami mengakses nilai daripada lajur 'id'. Jika lajur itu tiada, kami kembali kepada nilai parameter.
array_uintersect() memanfaatkan teknik pengisihan semasa penilaian untuk mengoptimumkan masa pelaksanaan. Dengan membandingkan nilai lajur dan nilai ID, ia mengenal pasti baris dalam $arr1 yang mempunyai ID ditemui dalam $arr2. Tatasusunan yang terhasil hanya akan terdiri daripada baris terpilih yang memenuhi syarat ini.
Untuk rujukan anda, di bawah ialah kod yang melaksanakan penyelesaian ini:
var_export( array_uintersect( $arr1, $arr2, fn($a, $b) => ($a['id'] ?? $a) <=> ($b['id'] ?? $b) ) );
Atas ialah kandungan terperinci Bagaimana untuk Mencari Baris Tatasusunan dengan Nilai Lajur dalam Tatasusunan Rata Menggunakan Fungsi Tatasusunan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!