Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mengira perbezaan tatasusunan dalam PHP

Bagaimana untuk mengira perbezaan tatasusunan dalam PHP

王林
王林ke hadapan
2024-03-19 11:40:07952semak imbas

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);

Contohnya:

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

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

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);

Contohnya:

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

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

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);

Contohnya:

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

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

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);

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"]);
}

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]]

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!

Kenyataan:
Artikel ini dikembalikan pada:lsjlt.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam