Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Nilai berbeza dua tatasusunan dalam php

Nilai berbeza dua tatasusunan dalam php

王林
王林asal
2023-05-24 16:57:38582semak imbas

Dalam pembangunan PHP, selalunya perlu membandingkan nilai yang berbeza dalam dua tatasusunan. Apabila kita perlu beroperasi dengan membandingkan nilai dalam dua tatasusunan, kita perlu mencari nilai yang berbeza dalam dua tatasusunan. Artikel ini akan menerangkan cara untuk mengetahui nilai yang berbeza dalam dua tatasusunan dalam PHP dan menyediakan kod sampel.

Kaedah 1: fungsi array_diff

Fungsi array_diff boleh digunakan untuk mencari nilai berbeza dalam dua tatasusunan. Fungsi ini boleh menerima dua atau lebih tatasusunan sebagai parameter dan mengembalikan tatasusunan baharu yang mengandungi nilai yang wujud dalam tatasusunan pertama tetapi tidak dalam tatasusunan lain.

Sintaks fungsi ini adalah seperti berikut:

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

Antaranya, $ array1 bermakna kita memerlukan Tatasusunan pertama dibandingkan, $array2 dan parameter seterusnya mewakili tatasusunan lain yang perlu dibandingkan dengan $array1.

Berikut ialah contoh kod mudah yang mencipta dua tatasusunan dan menggunakan fungsi array_diff untuk mengetahui nilai berbeza dalam dua tatasusunan:

$arr1 = array("apple", "banana", "orange");
$arr2 = array("banana", "orange", "pear");
$result = array_diff($arr1, $arr2);
print_r($result);

Selepas menjalankan kod, hasilnya adalah output Sebagai:

Array ( [0] => apple )

Seperti yang anda lihat, kod ini membandingkan dua tatasusunan $arr1 dan $arr2 dan mengeluarkan nilai yang berbeza (iaitu "epal" dalam $arr1).

Kaedah 2: fungsi array_unique

Cara lain untuk mengetahui nilai berbeza dalam dua tatasusunan adalah dengan menggunakan fungsi array_unique. Fungsi ini boleh mengalih keluar nilai pendua daripada tatasusunan dan mengembalikan tatasusunan baharu selepas mengalih keluar nilai pendua. Kita boleh mencari nilai yang berbeza dalam dua tatasusunan dengan menggunakan fungsi array_unique dan fungsi array_merge.

Berikut ialah kod sampel yang menggunakan fungsi array_unique dan fungsi array_merge:

$arr1 = array("apple", "banana", "orange");
$arr2 = array("banana", "orange", "pear");
$arr3 = array_merge($arr1, $arr2);
$result = array_diff($arr3, array_unique($arr3));
print_r($result);

Selepas menjalankan kod, hasil output ialah:

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

Seperti yang anda lihat, kod mula-mula menggunakan Fungsi array_merge menggabungkan $arr1 dan $arr2 bersama-sama, kemudian menggunakan fungsi array_unique untuk mengalih keluar nilai pendua, dan akhirnya menggunakan fungsi array_diff untuk mengetahui nilai yang berbeza dan mengeluarkannya.

Kaedah 3: gelung foreach

Cara lain untuk mengetahui nilai berbeza dalam dua tatasusunan ialah menggunakan gelung foreach. Kaedah ini berulang melalui dua tatasusunan dan menyimpan nilai yang berbeza ke dalam tatasusunan baharu.

Berikut ialah contoh kod yang menggunakan gelung foreach untuk mencari nilai yang berbeza:

$arr1 = array("apple", "banana", "orange");
$arr2 = array("banana", "orange", "pear");
$result = array();

foreach ($arr1 as $value) {
    if (!in_array($value, $arr2)) {
        $result[] = $value;
    }
}

foreach ($arr2 as $value) {
    if (!in_array($value, $arr1)) {
        $result[] = $value;
    }
}

print_r($result);

Selepas menjalankan kod, hasil output ialah:

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

Seperti yang anda lihat , kod pertama Traverse $arr1 dan simpan nilai berbeza ke dalam $result array, kemudian traverse $arr2 dan simpan nilai berbeza ke dalam $result array.

Ringkasnya, kita boleh menggunakan fungsi array_diff, fungsi array_unique dan gelung foreach untuk mengetahui nilai berbeza dalam dua tatasusunan. Dalam pembangunan sebenar, kita boleh memilih kaedah yang sesuai mengikut situasi yang berbeza.

Atas ialah kandungan terperinci Nilai berbeza 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