Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Menapis Baris Tatasusunan Berdasarkan Nilai Lajur Padanan Nilai Khusus?

Bagaimana untuk Menapis Baris Tatasusunan Berdasarkan Nilai Lajur Padanan Nilai Khusus?

Linda Hamilton
Lepaskan: 2024-10-23 18:57:31
asal
923 orang telah melayarinya

How to Filter Array Rows Based on Column Value Matching Specific Values?

Subset Baris Berdasarkan Kemasukan Nilai Lajur

Pertimbangkan tatasusunan, $arr1, dengan berbilang lajur dan tatasusunan rata kedua, $arr2, mengandungi nilai id tertentu. Objektifnya adalah untuk menapis $arr1 untuk mengekalkan hanya baris yang nilai lajur sepadan dengan mana-mana nilai dalam $arr2.

Percubaan sebelum ini menggunakan fungsi penapis atau array_search telah terbukti tidak berjaya. Penyelesaian praktikal melibatkan penggunaan fungsi PHP asli, array_uintersect().

Fungsi ini menggunakan fungsi panggil balik tanpa nama yang menilai lajur id (atau kembali kepada nilai parameter jika tiada) dalam kedua-dua tatasusunan input. Perbandingan menyemak kesamaan antara nilai.

Dalam panggilan balik, operator => digunakan untuk menangkap pembolehubah tatasusunan input $a dan $b, dan pengendali ternary ?: memberikan nilai pulangan bukan nol.

Di bawah tudung, array_uintersect melakukan pengisihan semasa proses penilaian, mengoptimumkan prestasi dan melaksanakan jauh lebih pantas daripada panggilan in_array() berulang.

Kod di bawah menunjukkan penyelesaiannya:

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

Atas ialah kandungan terperinci Bagaimana untuk Menapis Baris Tatasusunan Berdasarkan Nilai Lajur Padanan Nilai Khusus?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber: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