Bagaimana untuk Mencari Baris Tatasusunan dengan Nilai Lajur dalam Tatasusunan Rata Menggunakan Fungsi Tatasusunan?

DDD
Lepaskan: 2024-10-23 17:59:02
asal
992 orang telah melayarinya

How to Find Array Rows with Column Values in a Flat Array Using Array Functions?

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)
    )
);
Salin selepas log masuk

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!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!