Rumah >pembangunan bahagian belakang >tutorial php >Fungsi array_diff() PHP: Bagaimana untuk membandingkan dua tatasusunan dan mengembalikan nilai perbezaan

Fungsi array_diff() PHP: Bagaimana untuk membandingkan dua tatasusunan dan mengembalikan nilai perbezaan

王林
王林asal
2023-11-03 13:31:55922semak imbas

Fungsi array_diff() PHP: Bagaimana untuk membandingkan dua tatasusunan dan mengembalikan nilai perbezaan

Fungsi array_diff() PHP: Bagaimana untuk membandingkan dua tatasusunan dan mengembalikan nilai perbezaan, contoh kod khusus diperlukan

Dalam bahasa PHP, tatasusunan ialah salah satu struktur data yang paling biasa, sering digunakan untuk menyimpan set data atau Rekod. Apabila anda perlu membandingkan perbezaan antara dua tatasusunan, PHP menyediakan fungsi mudah array_diff(), yang membandingkan dua tatasusunan dan mengembalikan semua nilai yang berbeza. Sintaks fungsi

array_diff() adalah seperti berikut:

array array_diff ( array $array1 , array $array2 [, array $... ] )

Fungsi ini menerima dua atau lebih tatasusunan sebagai parameter dan mengembalikan tatasusunan mengandungi semua berbeza Satu tatasusunan nilai baharu. Ia berfungsi dengan membandingkan nilai dalam tatasusunan pertama dengan nilai dalam tatasusunan berikut dan mengembalikan nilai dalam tatasusunan pertama yang berbeza daripada tatasusunan yang tinggal. Jika nilai adalah sama dalam semua tatasusunan, ia tidak akan dikembalikan.

Seterusnya kami akan menunjukkan penggunaan fungsi array_diff() melalui contoh mudah.

Mula-mula, mari kita takrifkan dua tatasusunan:

$array1 = array("foo", "bar", "baz");
$array2 = array("bar", "qux");

Dalam dua tatasusunan ini, $array1 mengandungi tiga rentetan berbeza, manakala $array2 mengandungi dua rentetan berbeza, antaranya "bar" ialah apa yang mereka berkongsi nilai.

Seterusnya, kita akan menggunakan fungsi array_diff() untuk membandingkan dua tatasusunan dan mengembalikan semua nilai yang berbeza:

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

Keluaran kod di atas ialah:

Array
(
    [0] => foo
    [2] => baz
)

Seperti yang anda lihat, tatasusunan $diff mengandungi $ Semua nilai dalam array1 yang berbeza daripada $array2. Nilai "bar", yang wujud dalam kedua-dua tatasusunan, tidak dikembalikan.

Kita juga boleh membandingkan nilai dalam berbilang tatasusunan dengan menggunakan lebih banyak parameter tatasusunan:

$array3 = array("qux", "corge");
$diff = array_diff($array1, $array2, $array3);
print_r($diff);

Kod di atas menggabungkan $array1 dengan $array2 dan $array3 untuk mengembalikan semua nilai yang berbeza:

Array
(
    [0] => foo
    [2] => baz
)

Anda boleh melihatnya "qux" yang muncul dalam tatasusunan ketiga tidak dikembalikan kerana ia juga wujud dalam $array2.

Selain itu, jika anda perlu membandingkan tatasusunan bersekutu, anda boleh menggunakan fungsi array_diff_assoc() Penggunaannya serupa dengan array_diff(), tetapi ia juga akan membandingkan nilai utama dalam tatasusunan.

Akhir sekali, adalah penting untuk ambil perhatian bahawa fungsi array_diff() hanya membandingkan nilai, bukan kekunci. Sebagai contoh, walaupun dua tatasusunan berikut mempunyai nilai yang sama, tetapi nilai kunci yang berbeza:

$array1 = array("foo" => 1, "bar" => 2, "baz" => 3);
$array2 = array("qux" => 1, "quux" => 2, "baz" => 3);

Apabila membandingkan dua tatasusunan ini menggunakan tatasusunan_diff(), hanya nilainya yang akan dibandingkan, bukan nilai utama. Oleh itu, $array1 dan $array2 akan dianggap sebagai tatasusunan yang berbeza.

Ringkasnya, fungsi array_diff() ialah fungsi pemprosesan tatasusunan yang sangat mudah dalam PHP. Ia boleh membandingkan nilai yang berbeza antara berbilang tatasusunan dan mengembalikan tatasusunan baharu. Menggunakan fungsi ini boleh membantu kami memproses tatasusunan dengan lebih mudah.

Atas ialah kandungan terperinci Fungsi array_diff() PHP: Bagaimana untuk membandingkan dua tatasusunan dan mengembalikan nilai perbezaan. 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