Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mendapatkan elemen berbeza dari dua tatasusunan dalam php

Bagaimana untuk mendapatkan elemen berbeza dari dua tatasusunan dalam php

PHPz
PHPzasal
2023-04-18 10:20:20970semak imbas

Dalam PHP, kadangkala kita perlu mendapatkan item yang berbeza antara dua tatasusunan, iaitu, cari elemen yang wujud dalam tatasusunan A tetapi bukan dalam tatasusunan B, atau yang wujud dalam tatasusunan B tetapi bukan dalam tatasusunan A. elemen kewujudan.

Operasi jenis ini sangat biasa dalam pembangunan sebenar Contohnya, dari segi perbandingan perbezaan, penyegerakan data, dll., kita mungkin perlu mencari perbezaan antara dua tatasusunan dan mengendalikannya dengan sewajarnya.

Jadi, bagaimana untuk mendapatkan item yang berbeza antara dua tatasusunan dalam PHP? Di bawah ini saya akan memperkenalkan dua kaedah secara terperinci kepada anda.

Kaedah 1: Gunakan fungsi array_diff()

PHP mempunyai fungsi array_diff() terbina dalam yang sangat mudah, yang boleh mengira perbezaan dan mengembalikan item yang berbeza antara tatasusunan A dan tatasusunan lain .

Penggunaan khusus adalah seperti berikut:

$a = array('apple', 'banana', 'orange', 'watermelon');
$b = array('apple', 'banana', 'grape');
$diff = array_diff($a, $b);
print_r($diff);

Hasil keluarannya ialah:

Array
(
    [2] => orange
    [3] => watermelon
)

Dalam kod di atas, kami mula-mula mentakrifkan dua tatasusunan $a dan $ b, masing-masing Mengandungi unsur yang berbeza. Kemudian, kami memanggil fungsi array_diff(), menghantar dalam dua tatasusunan sebagai parameter Fungsi akan mengira perbezaan secara automatik dan menyimpan hasilnya dalam pembolehubah $diff. Akhir sekali, kami menggunakan fungsi print_r() untuk mengeluarkan kandungan pembolehubah $diff untuk melihat item berbeza antara dua tatasusunan.

Perlu diambil perhatian bahawa fungsi array_diff() hanya boleh mencari elemen yang wujud dalam tatasusunan A tetapi tidak dalam tatasusunan lain, tetapi tidak dapat mencari elemen yang wujud dalam tatasusunan B tetapi tidak wujud dalam tatasusunan A. Jika kita perlu mencari item yang berbeza dalam tatasusunan B, kita perlu menggunakan fungsi array_diff() untuk melaksanakannya semula Kodnya adalah seperti berikut:

$diff = array_diff($b, $a);
print_r($diff);

Hasil output ialah:

Array
(
    [2] => grape
)
Dalam kod di atas, Kami memanggil fungsi array_diff() dua kali, menghantar dua tatasusunan masing-masing, untuk mendapatkan perbezaan antara dua tatasusunan dengan lebih intuitif.

Kaedah 2: Gunakan fungsi array_unique()

Selain fungsi array_diff(), cara lain untuk mendapatkan item berbeza ialah menggunakan fungsi array_unique(), yang boleh memisahkan elemen berulang dalam tatasusunan Alih keluar dan kembalikan item yang berbeza di dalamnya.

Penggunaan khusus adalah seperti berikut:

$a = array('apple', 'banana', 'orange', 'watermelon');
$b = array('apple', 'banana', 'grape');
$diff = array_unique(array_merge($a, $b));
print_r($diff);
Hasil output ialah:

Array
(
    [0] => apple
    [1] => banana
    [2] => orange
    [3] => watermelon
    [4] => grape
)
Dalam kod di atas, kita mula-mula menggunakan fungsi array_merge() untuk gabungkan dua tatasusunan menjadi satu tatasusunan Baharu, dan kemudian hantar tatasusunan baharu ke dalam fungsi array_unique(), yang akan mengalih keluar item pendua secara automatik dan mengekalkan hanya item yang berbeza.

Perlu diingatkan bahawa apabila menggunakan kaedah ini untuk mendapatkan item yang berbeza, kita perlu menggabungkan semua tatasusunan yang perlu dibandingkan ke dalam tatasusunan baharu, jadi apabila memproses sejumlah besar data, mungkin terdapat beban tertentu pada ingatan. Jika anda mempunyai projek dengan keperluan tinggi pada prestasi dan penggunaan memori, adalah disyorkan untuk menggunakan kaedah array_diff().

Ringkasnya, kami telah memperkenalkan dua kaedah untuk mendapatkan item yang berbeza dalam PHP: array_diff() dan array_unique(). Kaedah ini sangat mudah dan mudah digunakan, boleh menyelesaikan operasi perbandingan perbezaan dengan cepat, dan memainkan peranan penting dalam pembangunan sebenar.

Atas ialah kandungan terperinci Bagaimana untuk mendapatkan elemen berbeza dari dua tatasusunan dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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