Dalam pembangunan PHP, adalah perkara biasa untuk menentukan sama ada dua tatasusunan mempunyai pendua. Artikel ini akan memperkenalkan dua kaedah untuk mencapai keperluan ini.
Kaedah 1: Gunakan fungsi array_intersect
Antara fungsi tatasusunan yang disediakan secara rasmi oleh PHP, terdapat fungsi yang dipanggil array_intersect, yang boleh digunakan untuk membandingkan dua tatasusunan untuk melihat sama ada ia mempunyai elemen pendua .
Kod sampel adalah seperti berikut:
$array1 = array(1, 2, 3, 4, 5);
$array2 = array(4, 5, 6, 7, 8);
$result = array_intersect($array1, $array2);
if(count($result) > 0) {
echo "存在重复元素";
} else {
echo "不存在重复元素";
}
Salin selepas log masuk
Analisis:
- Pertama, tentukan dua tatasusunan $array1 dan $array2, setiap satu mengandungi beberapa nombor
- Kemudian, gunakan fungsi array_intersect untuk membandingkan kedua-dua tatasusunan;
Jika tidak, nyatakan Tiada unsur pendua dalam dua tatasusunan. -
- Perlu diingatkan bahawa apabila menggunakan fungsi array_intersect, anda perlu memastikan bahawa jenis elemen dalam dua tatasusunan adalah konsisten. Jika elemen dalam satu tatasusunan adalah rentetan dan elemen dalam tatasusunan lain ialah nombor, perbandingan itu juga akan gagal.
Kaedah 2: Gunakan perbandingan gelung
Jika anda tidak mahu memperkenalkan fungsi baharu untuk menentukan sama ada dua tatasusunan mempunyai elemen pendua, anda juga boleh menggunakan gelung untuk mencapai fungsi ini.
Kod sampel adalah seperti berikut:
Analisis:
$array1 = array(1, 2, 3, 4, 5);
$array2 = array(4, 5, 6, 7, 8);
$hasRepeat = false;
foreach ($array1 as $value1) {
foreach ($array2 as $value2) {
if ($value1 == $value2) {
$hasRepeat = true;
break;
}
}
}
if ($hasRepeat) {
echo "存在重复元素";
} else {
echo "不存在重复元素";
}
Salin selepas log masuk
Pertama, tentukan dua tatasusunan $array1 dan $array2, setiap satu mengandungi beberapa nombor
Kemudian, gunakan dua gelung foreach untuk melintasi dua tatasusunan; sama, maka Ia bermakna bahawa dua tatasusunan mempunyai elemen pendua, tetapkan pembolehubah $hasRepeat kepada benar, dan lompat keluar daripada gelung - Jika pembolehubah $hasRepeat masih palsu pada penghujung gelung, ia; bermakna kedua-dua tatasusunan tidak mempunyai unsur pendua.
-
- Perlu diambil perhatian bahawa apabila menggunakan perbandingan gelung, kerumitan masa akan menjadi agak tinggi kerana dua peringkat gelung perlu disarangkan. Jika bilangan elemen dalam kedua-dua tatasusunan adalah besar, prestasi mungkin terjejas.
- Ringkasan
- Menentukan sama ada dua tatasusunan mempunyai elemen pendua ialah keperluan biasa dalam pembangunan PHP. Artikel ini memperkenalkan dua kaedah pelaksanaan, satu adalah menggunakan fungsi array_intersect, dan satu lagi adalah menggunakan perbandingan gelung. Kaedah yang berbeza perlu dipilih bergantung pada situasi tertentu.
Atas ialah kandungan terperinci Bagaimana untuk menentukan sama ada dua tatasusunan diduplikasi dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!