Mengapakah `array_diff_assoc()` Termasuk Baris Biasa Apabila Membandingkan Tatasusunan 2D?

Barbara Streisand
Lepaskan: 2024-10-26 06:06:02
asal
802 orang telah melayarinya

Why Does `array_diff_assoc()` Include Common Rows When Comparing 2D Arrays?

Tapis Baris Tatasusunan 2D Menggunakan Tatasusunan Lain

Anda mempunyai dua tatasusunan 2D dan berhasrat untuk menggunakan array_diff_assoc() untuk mengenal pasti baris unik dalam tatasusunan pertama yang tidak terdapat dalam tatasusunan kedua. Walau bagaimanapun, anda menghadapi masalah apabila baris biasa disertakan dalam hasil.

Isu ini berpunca daripada cara array_diff_assoc() membandingkan nilai. Ia melakukan perbandingan rentetan yang ketat, bermakna nilai mestilah sama dalam kedua-dua jenis dan nilai untuk dianggap sama. Dalam contoh yang diberikan:

<code class="php">$array1 = [
    [12 => 'new q sets'],
    [11 => 'common set']
];

$array2 = [
    [11 => 'common set']
];</code>
Salin selepas log masuk

Apabila array_diff_assoc($array1, $array2) dipanggil, perwakilan rentetan kedua-dua tatasusunan ialah "Array." Oleh itu, perbezaan dikesan berdasarkan baris tambahan dalam $array1 ([12] => 'set q baharu'). Akibatnya, baris biasa ([11] => 'set biasa') disertakan dalam perbezaan.

Untuk menyelesaikan isu ini, pertimbangkan untuk menggunakan pendekatan perbandingan yang berbeza. Jika data dalam tatasusunan adalah angka atau boleh ditukar kepada angka, anda boleh menggunakan array_diff_uassoc(), yang membolehkan anda menentukan fungsi perbandingan tersuai. Sebagai alternatif, anda boleh menapis baris secara manual dengan mengulangi kedua-dua tatasusunan dan menyemak kesamaan nilai.

Atas ialah kandungan terperinci Mengapakah `array_diff_assoc()` Termasuk Baris Biasa Apabila Membandingkan Tatasusunan 2D?. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!