Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Membanding dan Menapis Tatasusunan Bersekutu Dengan Cekap Berdasarkan Lajur Tertentu?

Bagaimanakah Saya Boleh Membanding dan Menapis Tatasusunan Bersekutu Dengan Cekap Berdasarkan Lajur Tertentu?

Susan Sarandon
Lepaskan: 2024-12-11 14:39:10
asal
489 orang telah melayarinya

How Can I Efficiently Compare and Filter Associative Arrays Based on a Specific Column?

Mencari Perbezaan Antara Lajur Tatasusunan Bersekutu

Anda mempunyai dua tatasusunan dengan baris data bersekutu dan anda ingin menapis tatasusunan kedua berdasarkan nilai lajur tertentu dalam tatasusunan pertama. Menggunakan array_diff() tidak akan mencukupi untuk ini kerana ia membandingkan keseluruhan baris, bukan hanya lajur yang diingini.

Untuk menangani ini, anda boleh memanfaatkan fungsi array_udiff(), yang membolehkan anda menentukan fungsi perbandingan tersuai . Fungsi ini harus membandingkan hanya nilai lajur yang diingini, dalam kes ini, kekunci 'ITEM'.

Begini cara untuk melaksanakannya:

function udiffCompare($a, $b)
{
    return $a['ITEM'] - $b['ITEM'];
}

$arrdiff = array_udiff($arr2, $arr1, 'udiffCompare');
Salin selepas log masuk

Ini mentakrifkan fungsi perbandingan tersuai udiffCompare yang menolak nilai 'ITEM' bagi dua baris yang dibandingkan. Hasil penolakan ini menentukan sama ada baris adalah sama, berbeza atau yang mana satu lebih besar.

Dengan menghantar udiffCompare sebagai argumen ketiga kepada array_udiff(), anda pada asasnya memberitahu fungsi untuk menggunakan perbandingan tersuai ini berfungsi untuk menentukan elemen mana dalam $arr2 berbeza daripada elemen dalam $arr1 berdasarkan lajur 'ITEM'.

Output kod ini akan menjadi tatasusunan yang mengandungi hanya elemen daripada $arr2 yang tidak terdapat dalam $arr1, mengekalkan struktur tatasusunan asal:

Array
(
    [3] => Array
        (
            [ITEM] => 4
        )
)
Salin selepas log masuk

Demonstrasi ini membolehkan anda menapis satu tatasusunan dengan berkesan berdasarkan nilai lajur tertentu dalam yang lain tatasusunan sambil mengekalkan struktur tatasusunan asal.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membanding dan Menapis Tatasusunan Bersekutu Dengan Cekap Berdasarkan Lajur Tertentu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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