Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk membandingkan dua tatasusunan berbeza dalam PHP

Bagaimana untuk membandingkan dua tatasusunan berbeza dalam PHP

PHPz
PHPzasal
2023-04-24 17:12:03641semak imbas

Dalam PHP, tatasusunan ialah jenis data yang sangat penting, ia membenarkan sekumpulan item data yang berkaitan disimpan dalam pembolehubah yang sama. Menggunakan tatasusunan boleh meningkatkan kebolehbacaan dan kebolehselenggaraan kod anda. Walau bagaimanapun, dalam pengaturcaraan sebenar, selalunya perlu untuk beroperasi pada tatasusunan, seperti mencari perbezaan antara dua tatasusunan. Artikel ini akan meneroka cara membandingkan dua tatasusunan berbeza dalam PHP.

Mula-mula, mari kita buat dua tatasusunan berbeza untuk menunjukkan cara membandingkannya dengan lebih baik:

$array1 = array("apple", "banana", "orange", "pear");
$array2 = array("banana", "orange", "grapefruit");

Mari kita lihat perbezaan antara dua tatasusunan ini. Kita boleh menggunakan fungsi PHP terbina dalam array_diff() untuk mencari perbezaan antara dua tatasusunan. Sintaks fungsi ini adalah seperti berikut:

array_diff(array1, array2, array3...)

Antaranya, tatasusunan1, tatasusunan2, tatasusunan3, dsb. ialah tatasusunan untuk dibandingkan, dan boleh terdapat berbilang tatasusunan.

Sekarang, mari kita gunakan fungsi array_diff() untuk mencari perbezaan antara $array1 dan $array2. Kodnya adalah seperti berikut:

$diff = array_diff($array1, $array2);
print_r($diff);

Hasil output adalah seperti berikut:

Array
(
    [0] => apple
    [3] => pear
)

Kita dapat melihat bahawa hasil output adalah perbezaan antara dua tatasusunan, "epal" dalam $array1 dan "pear" tidak wujud dalam $array2.

Bagaimana jika kita ingin mencari perbezaan antara $array2 dan $array1? Kita hanya perlu menukar susunan tatasusunan dalam kod di atas. Kodnya adalah seperti berikut:

$diff = array_diff($array2, $array1);
print_r($diff);

Hasil keluaran adalah seperti berikut:

Array
(
    [2] => grapefruit
)

Kita dapat melihat bahawa hasil keluaran ialah perbezaan antara dua tatasusunan "grapefruit". $array2 is Tidak wujud dalam $array1.

Dalam pengaturcaraan sebenar, anda mungkin menghadapi situasi membandingkan perbezaan antara berbilang tatasusunan. Pada ketika ini, kita boleh menggunakan varian fungsi PHP terbina dalam array_diff(): array_diff_key() untuk membandingkan pasangan nilai kunci antara berbilang tatasusunan.

Sintaks adalah seperti berikut:

array_diff_key(array1, array2, array3...)

Sekarang, mari lihat contoh. Kami mencipta tiga tatasusunan seperti berikut:

$array1 = array("name" => "Tom", "age" => 20, "gender" => "male");
$array2 = array("name" => "Jack", "age" => 22, "gender" => "male", "hobby" => "swimming");
$array3 = array("name" => "Alice", "age" => 24, "gender" => "female", "hobby" => "reading");

Kita boleh menggunakan fungsi array_diff_key() untuk mencari perbezaan antara tiga tatasusunan di atas. Kodnya adalah seperti berikut:

$diff = array_diff_key($array1, $array2, $array3);
print_r($diff);

Hasil keluaran adalah seperti berikut:

Array
(
    [name] => Tom
    [age] => 20
    [gender] => male
)

Kita dapat melihat bahawa hasil keluaran ialah perbezaan antara tiga tatasusunan pasangan dalam $array1 ialah Tidak wujud dalam $array2 dan $array3.

Akhir sekali, mari kita bincangkan tentang perkara yang perlu dilakukan jika anda perlu mencari elemen yang sama dalam dua tatasusunan pada masa yang sama. Pada masa ini, kita boleh menggunakan fungsi PHP terbina dalam array_intersect(). Sintaks fungsi ini adalah seperti berikut:

array_intersect(array1, array2, array3...)

Antaranya, tatasusunan1, tatasusunan2, tatasusunan3, dsb. ialah tatasusunan untuk dibandingkan, dan boleh terdapat berbilang tatasusunan.

Sekarang, mari kita lihat satu contoh. Kami mencipta dua tatasusunan seperti berikut:

$array1 = array("apple", "banana", "orange", "pear");
$array2 = array("banana", "orange", "grapefruit");

Kita boleh menggunakan fungsi array_intersect() untuk mencari elemen yang sama antara dua tatasusunan di atas. Kodnya adalah seperti berikut:

$intersect = array_intersect($array1, $array2);
print_r($intersect);

Hasil keluaran adalah seperti berikut:

Array
(
    [1] => banana
    [2] => orange
)

Kita dapat lihat hasil keluaran adalah elemen biasa antara dua tatasusunan iaitu "pisang " dan "oren" ".

Di atas ialah cara membandingkan tatasusunan PHP yang berbeza. Dalam pengaturcaraan sebenar, kita perlu memilih kaedah yang hendak digunakan untuk pengiraan tatasusunan berdasarkan keperluan khusus.

Atas ialah kandungan terperinci Bagaimana untuk membandingkan dua tatasusunan berbeza 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