Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Cekap Mencari Perbezaan dalam Tatasusunan Bersekutu Berdasarkan Kunci Tertentu?

Bagaimana untuk Cekap Mencari Perbezaan dalam Tatasusunan Bersekutu Berdasarkan Kunci Tertentu?

Barbara Streisand
Lepaskan: 2024-12-26 05:04:13
asal
199 orang telah melayarinya

How to Efficiently Find Differences in Associative Arrays Based on a Specific Key?

Membandingkan Perbezaan Nilai Bersekutu dalam Tatasusunan Dua Dimensi

Selalunya dalam pengaturcaraan, kita perlu membandingkan dua tatasusunan dan mengekstrak perbezaan sahaja. Tugas ini menjadi lebih rumit apabila tatasusunan mengandungi data bersekutu, terutamanya apabila perbandingan harus memfokuskan pada nilai kunci tertentu.

Pertimbangkan dua tatasusunan dengan baris data bersekutu:

$array1 = array(
    array('ITEM' => 1),
    array('ITEM' => 2),
    array('ITEM' => 3),
);

$array2 = array(
    array('ITEM' => 2),
    array('ITEM' => 3),
    array('ITEM' => 1),
    array('ITEM' => 4),
);
Salin selepas log masuk

Matlamatnya adalah untuk tapis tatasusunan kedua untuk mengecualikan item yang terdapat dalam tatasusunan pertama, tetapi secara khusus membandingkan 'ITEM' nilai.

Menggunakan array_udiff dengan Fungsi Perbandingan Tersuai

Fungsi array_diff() tidak mencukupi untuk tujuan ini kerana ia membandingkan keseluruhan baris. Untuk memfokuskan secara eksklusif pada nilai 'ITEM', kami mentakrifkan fungsi perbandingan tersuai untuk array_udiff().

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

Fungsi ini menolak nilai 'ITEM' dan mengembalikan perbezaannya.

Sekarang , kita boleh menggunakan fungsi ini dalam array_udiff():

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

Pembolehubah $arrdiff akan mengandungi yang dikehendaki hasil:

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

Pendekatan ini mengekalkan struktur tatasusunan sedia ada dan memfokuskan pada nilai utama 'ITEM' khusus untuk perbandingan.

Atas ialah kandungan terperinci Bagaimana untuk Cekap Mencari Perbezaan dalam Tatasusunan Bersekutu Berdasarkan Kunci 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