Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk membandingkan perbezaan antara dua tatasusunan dalam php

Bagaimana untuk membandingkan perbezaan antara dua tatasusunan dalam php

PHPz
PHPzasal
2023-04-25 17:35:38908semak imbas

Dalam PHP, anda boleh mendapatkan perbezaan antara dua tatasusunan dengan cepat dengan membandingkannya. Dalam artikel ini, kami akan meneroka beberapa cara untuk membandingkan dua tatasusunan dan mendapatkan perbezaan antara mereka.

  1. array_diff()

array_diff() fungsi ialah salah satu kaedah biasa dalam PHP untuk membandingkan dua tatasusunan. Ia menerima dua atau lebih tatasusunan sebagai argumen dan mengembalikan perbezaan antara tatasusunan pertama dan tatasusunan lain. Lebih khusus lagi, ia mengembalikan tatasusunan termasuk nilai yang muncul hanya dalam tatasusunan pertama. Berikut ialah contoh:

$array1 = array("red", "green", "blue");
$array2 = array("green", "blue", "yellow");
$diff = array_diff($array1, $array2);
print_r($diff);

Dalam contoh di atas, array_diff() mengembalikan nilai yang hanya muncul dalam $array1, iaitu "merah".

  1. array_diff_assoc()

array_diff_assoc() fungsi digunakan untuk membandingkan perbezaan antara kunci dan nilai dalam tatasusunan bersekutu. Ia menerima dua atau lebih tatasusunan sebagai argumen dan mengembalikan perbezaan antara tatasusunan pertama dan tatasusunan lain. Tidak seperti array_diff(), array_diff_assoc() menganggap padanan kunci dan nilai. Berikut ialah contoh:

$array1 = array("a"=>"red", "b"=>"green", "c"=>"blue");
$array2 = array("a"=>"red", "b"=>"blue", "c"=>"green");
$diff = array_diff_assoc($array1, $array2);
print_r($diff);

Dalam contoh di atas, array_diff_assoc() hanya mengembalikan entri dengan kunci atau nilai yang berbeza dalam $array1, iaitu "b" => "hijau" dan "c "= >"biru".

  1. array_udiff()

array_udiff() fungsi membandingkan dua atau lebih tatasusunan dan menggunakan fungsi panggil balik yang ditentukan untuk membandingkan nilai. Fungsi panggil balik memerlukan dua parameter, iaitu nilai perbandingan. Berikut ialah contoh:

function compare($a, $b) {
    if ($a === $b) {
        return 0;
    }
    return ($a > $b) ? 1 : -1;
}

$array1 = array("red", "green", "blue");
$array2 = array("GREEN", "BLUE", "yellow");
$diff = array_udiff($array1, $array2, 'compare');
print_r($diff);

Di sini, kami mentakrifkan fungsi perbandingan yang membandingkan nilai dua elemen. Kami kemudian menggunakan fungsi ini untuk memanggil fungsi array_udiff(), menyimpan hasilnya dalam pembolehubah $diff. array_udiff() akan mengembalikan nilai yang hanya muncul dalam $array1, iaitu "merah". Fungsi

  1. array_diff_uassoc()

array_diff_uassoc() membandingkan dua tatasusunan Ia menggunakan fungsi panggil balik yang ditentukan untuk membandingkan kekunci dan nilai dalam tatasusunan bersekutu. Fungsi panggil balik ini memerlukan dua parameter, kunci dan nilai perbandingan. Berikut ialah contoh:

function compare($a, $b) {
    $key_compare = strcmp($a, $b);
    if ($key_compare === 0) {
        return 0;
    }
    return ($key_compare > 0) ? 1 : -1;
}

$array1 = array('a' => 'red', 'b' => 'green', 'c' => 'blue');
$array2 = array('a' => 'red', 'b' => 'blue', 'd' => 'green');

$diff = array_diff_uassoc($array1, $array2, 'compare');

print_r($diff);

Di sini, kami mentakrifkan fungsi perbandingan yang membandingkan kekunci dua elemen. Kami kemudian menggunakan fungsi ini untuk memanggil fungsi array_diff_uassoc(), menyimpan hasilnya dalam pembolehubah $diff. array_diff_uassoc() hanya akan mengembalikan entri dengan kunci atau nilai yang berbeza dalam $array1, iaitu "b" => "hijau" dan "c" => "biru".

Ringkasan

Dalam PHP, terdapat banyak pilihan untuk cara membandingkan dua atau lebih tatasusunan, bergantung pada faktor yang perlu anda pertimbangkan. Sebagai contoh, jika anda hanya perlu membandingkan nilai dalam satu tatasusunan, menggunakan fungsi array_diff() ialah pilihan yang baik. Jika anda perlu mempertimbangkan padanan kunci dan nilai, anda harus menggunakan fungsi array_diff_assoc(). Jika anda memerlukan kaedah perbandingan tersuai, anda boleh menggunakan fungsi array_udiff() dan array_diff_uassoc(). Tidak kira kaedah yang anda pilih, anda boleh mencari perbezaan antara dua tatasusunan dengan cepat dengan perbandingan yang mudah.

Atas ialah kandungan terperinci Bagaimana untuk membandingkan perbezaan antara 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