Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Menapis Baris Tatasusunan dengan Memadankan Nilai Menggunakan array_uintersect()?

Bagaimana untuk Menapis Baris Tatasusunan dengan Memadankan Nilai Menggunakan array_uintersect()?

Linda Hamilton
Lepaskan: 2024-10-23 16:06:02
asal
289 orang telah melayarinya

How to Filter Array Rows by Matching Values Using array_uintersect()?

Simpan Nilai Padanan Baris Tatasusunan dalam Tatasusunan Rata

Latar Belakang:

Anda mempunyai tatasusunan, $arr1, dengan berbilang lajur dan tatasusunan lain, $arr2, mengandungi senarai nilai. Matlamatnya adalah untuk menapis $arr1 dan mengekalkan hanya baris di mana lajur id sepadan dengan mana-mana nilai dalam $arr2.

Penyelesaian:

Menggunakan array_uintersect() :

Penyelesaian yang paling cekap menggunakan fungsi array_uintersect(), yang membandingkan elemen daripada dua tatasusunan menggunakan panggilan balik yang ditentukan pengguna. Dalam kes ini, panggilan balik menyemak sama ada nilai id sepadan.

var_export(
    array_uintersect(
        $arr1,
        $arr2,
        fn($a, $b) =>
            ($a['id'] ?? $a)
            <=>
            ($b['id'] ?? $b)
    )
);
Salin selepas log masuk

Penjelasan:

  • Fungsi array_uintersect() mengambil dua tatasusunan dan satu panggilan balik sebagai argumen.
  • Fungsi panggil balik digunakan untuk setiap elemen daripada kedua-dua tatasusunan, dan ia harus mengembalikan 0 jika elemen dianggap sama, 1 jika elemen pertama lebih besar dan -1 jika elemen kedua lebih besar .
  • Jika elemen tidak mempunyai lajur id, nilai mentahnya digunakan untuk perbandingan.
  • Hasilnya ialah tatasusunan yang mengandungi hanya baris dari $arr1 di mana lajur id sepadan dengan nilai dalam $arr2.

Faedah array_uintersect():

  • Ia adalah fungsi PHP asli, memastikan kecekapan dan keserasian.
  • Ia melakukan pengisihan semasa menilai, yang mengoptimumkan prestasi.
  • Ia menyediakan penyelesaian yang ringkas dan boleh dibaca berbanding dengan panggilan berulang in_array().

Atas ialah kandungan terperinci Bagaimana untuk Menapis Baris Tatasusunan dengan Memadankan Nilai Menggunakan array_uintersect()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan