Rumah > pembangunan bahagian belakang > masalah PHP > Bagaimana untuk membandingkan dua tatasusunan dengan nilai yang berbeza dalam php

Bagaimana untuk membandingkan dua tatasusunan dengan nilai yang berbeza dalam php

PHPz
Lepaskan: 2023-04-26 14:10:28
asal
864 orang telah melayarinya

PHP ialah bahasa pengaturcaraan yang sangat popular dan praktikal yang menyediakan pelbagai kaedah untuk memproses dan mengendalikan tatasusunan. Semasa proses pembangunan, kita sering perlu membandingkan perbezaan antara dua tatasusunan dan memaparkan nilai yang berbeza. Di bawah ini saya akan memperkenalkan beberapa kaedah pelaksanaan.

Kaedah pelaksanaan 1: Gunakan fungsi array_diff()

Fungsi array_diff() boleh membandingkan nilai dua tatasusunan dan mengembalikan nilai yang berbeza.

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

$result = array_diff($array1, $array2);

print_r($result);
Salin selepas log masuk

Jalankan kod di atas, hasil keluarannya ialah:

Array
(
    [b] => green
    [c] => blue
)
Salin selepas log masuk

Seperti yang dapat dilihat daripada keputusan di atas, kekunci dalam $array1 dan $array2 ialah nilainya ​​daripada "b" dan "c" adalah berbeza, jadi fungsi array_diff() mengembalikan nilai ini.

Kaedah pelaksanaan 2: Gunakan gelung foreach

Selain menggunakan fungsi array_diff(), kita juga boleh menggunakan gelung foreach untuk membandingkan nilai dua tatasusunan dan memaparkan nilai yang berbeza.

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

foreach($array1 as $key => $value){
    if($value != $array2[$key]){
        echo "键为".$key."的值不同,分别为".$value."和".$array2[$key]."<br>";
    }
}
Salin selepas log masuk

Jalankan kod di atas, hasil keluarannya ialah:

键为b的值不同,分别为green和blue
键为c的值不同,分别为blue和
Salin selepas log masuk

Seperti yang dapat dilihat daripada keputusan di atas, kekunci dalam $array1 dan $array2 ialah nilainya ​​daripada "b" dan "c" adalah berbeza, jadi gelung foreach mengeluarkan nilai ini.

Perlu diambil perhatian bahawa apabila menggunakan gelung foreach untuk membandingkan dua tatasusunan, anda perlu memastikan bahawa kedua-dua tatasusunan mempunyai kekunci yang sama, jika tidak, Notis: Ralat offset tidak ditentukan mungkin berlaku.

Kaedah pelaksanaan 3: Gunakan fungsi array_map()

Cara lain untuk membandingkan nilai dua tatasusunan ialah menggunakan fungsi array_map(). Fungsi ini akan menggunakan fungsi tersuai pada nilai kunci yang sama dalam kedua-dua tatasusunan, menyimpan keputusan dalam tatasusunan baharu.

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

$result = array_map(function($a, $b){
    if($a != $b){
        return array($a, $b);
    }
}, $array1, $array2);

print_r($result);
Salin selepas log masuk

Jalankan kod di atas, hasil keluarannya ialah:

Array
(
    [b] => Array
        (
            [0] => green
            [1] => blue
        )

    [c] => Array
        (
            [0] => blue
            [1] =>
        )

    [d] => Array
        (
            [0] =>
            [1] => yellow
        )

)
Salin selepas log masuk

Seperti yang dapat dilihat daripada keputusan di atas, kekunci dalam $array1 dan $array2 ialah nilainya ​​daripada "b" dan "c" adalah berbeza, jadi fungsi array_map() mengembalikan nilai ini.

Perlu diambil perhatian bahawa apabila menggunakan fungsi array_map() untuk membandingkan dua tatasusunan, anda perlu menggunakan fungsi tersuai untuk melaksanakan logik perbandingan.

Ringkasnya, terdapat banyak kaedah pelaksanaan untuk membandingkan nilai dua tatasusunan dan memaparkan nilai yang berbeza. Antaranya, fungsi array_diff() dan gelung foreach adalah agak mudah dan jelas, dan sesuai untuk tatasusunan berskala kecil manakala fungsi array_map() lebih sesuai untuk tatasusunan yang agak besar, dan fungsi tersuai boleh digunakan untuk melaksanakan logik perbandingan yang lebih kompleks. Dalam pembangunan sebenar, memilih kaedah yang sesuai untuk perbandingan berdasarkan situasi sebenar boleh meningkatkan kecekapan pembangunan dan kualiti kod.

Atas ialah kandungan terperinci Bagaimana untuk membandingkan dua tatasusunan dengan nilai yang berbeza dalam php. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan