Bagaimana untuk mengira perbezaan tatasusunan dalam PHP

王林
Lepaskan: 2024-03-19 11:42:01
ke hadapan
927 orang telah melayarinya

Editor PHP Xigua akan memberi anda analisis terperinci tentang cara PHP mengira perbezaan dalam tatasusunan. Dalam pembangunan sebenar, membandingkan perbezaan antara dua tatasusunan ialah keperluan biasa, yang boleh membantu kami mengetahui elemen yang baru ditambah, dipadam dan diubah suai. Kita boleh melaksanakan fungsi ini dengan mudah melalui fungsi terbina dalam PHP dan beberapa logik mudah. Seterusnya, mari kita terokai cara menggunakan PHP untuk mengira perbezaan tatasusunan untuk menjadikan pembangunan anda berfungsi dengan lebih cekap dan mudah.

Panduan PHP untuk Mengira Perbezaan Tatasusunan

Mengira perbezaan tatasusunan ialah proses membandingkan dan membezakan perbezaan unsur dalam dua atau lebih tatasusunan. php menyediakan beberapa cara untuk menyelesaikan tugas ini, bergantung pada hasil yang diingini dan struktur tatasusunan.

array_diff() fungsi

array_diff() Fungsi digunakan untuk mencari elemen yang terdapat dalam tatasusunan pertama dan tidak hadir dalam semua tatasusunan lain. Sintaksnya adalah seperti berikut:

array_diff($array1, $array2, ..., $arrayN);
Salin selepas log masuk

Contohnya:

$array1 = ["apple", "banana", "cherry"];
$array2 = ["banana", "orange"];

$diff = array_diff($array1, $array2); // ["apple", "cherry"]
Salin selepas log masuk

array_diff_assoc() fungsi

Fungsi

array_diff_assoc() adalah serupa dengan array_diff_assoc() 函数类似于 array_diff(), tetapi ia juga membandingkan kekunci tatasusunan. Ia mengembalikan elemen dengan kunci dan nilai yang sama. Sintaksnya adalah seperti berikut:

array_diff_assoc($array1, $array2, ..., $arrayN);
Salin selepas log masuk

Contohnya:

$array1 = ["apple" => 1, "banana" => 2, "cherry" => 3];
$array2 = ["banana" => 2, "orange" => 4];

$diff = array_diff_assoc($array1, $array2); // ["apple" => 1, "cherry" => 3]
Salin selepas log masuk

array_diff_key() fungsi

array_diff_key() Fungsi digunakan untuk mencari elemen dengan kekunci berbeza dalam dua tatasusunan. Sintaksnya adalah seperti berikut:

array_diff_key($array1, $array2, ..., $arrayN);
Salin selepas log masuk

Contohnya:

$array1 = ["apple" => 1, "banana" => 2];
$array2 = ["banana" => 2, "orange" => 4];

$diff = array_diff_key($array1, $array2); // ["apple" => 1]
Salin selepas log masuk

array_udiff() dan array_uintersect() fungsi

array_udiff()array_uintersect() 函数用于使用用户自定义比较函数比较两个数组中的元素。array_udiff() 返回第一个数组中存在且在其他所有数组中不存在的元素,而 array_uintersect() Mengembalikan elemen yang terdapat dalam kedua-dua tatasusunan. Sintaks mereka adalah seperti berikut:

array_udiff($array1, $array2, ..., $arrayN, $compareFunction);
array_uintersect($array1, $array2, ..., $arrayN, $compareFunction);
Salin selepas log masuk

Fungsi perbandingan tersuai mesti mengambil dua parameter (elemen tatasusunan) dan mengembalikan integer:

  • Jika elemen pertama kurang daripada elemen kedua, kembalikan -1.
  • Jika elemen pertama sama dengan elemen kedua, kembalikan 0.
  • Jika elemen pertama lebih besar daripada elemen kedua, kembalikan 1.

Sebagai contoh, fungsi perbandingan tersuai berikut akan mengisih susunan buah-buahan mengikut nama:

function compareFruits($a, $b) {
return strcmp($a["name"], $b["name"]);
}
Salin selepas log masuk

Kira perbezaan menggunakan fungsi perbandingan tersuai:

$array1 = [
["name" => "apple", "price" => 1],
["name" => "banana", "price" => 2],
["name" => "cherry", "price" => 3],
];

$array2 = [
["name" => "banana", "price" => 2],
["name" => "orange", "price" => 4],
];

$diff = array_udiff($array1, $array2, "compareFruits"); // [["name" => "apple", "price" => 1], ["name" => "cherry", "price" => 3]]
Salin selepas log masuk

Dalam contoh di atas, compareFruits 函数按名称对数组元素进行排序,因此结果包含 array1 中存在且在 array2 ialah buah yang tidak wujud.

Atas ialah kandungan terperinci Bagaimana untuk mengira perbezaan tatasusunan dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:lsjlt.com
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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!