Dalam PHP, terdapat banyak cara untuk menentukan sama ada tatasusunan mempunyai nilai yang sama Mari perkenalkan kaedah ini secara berasingan.
Kaedah 1: Gunakan gelung untuk melintasi
Menggunakan gelung untuk melintasi tatasusunan ialah cara paling mudah Kod adalah seperti berikut:
function hasDuplicate($arr) { $len = count($arr); for ($i = 0; $i < $len; $i++) { for ($j = $i+1; $j < $len; $j++) { if ($arr[$i] == $arr[$j]) { return true; } } } return false; }
Kaedah ini menggunakan gelung berganda Pertama, Mengulang setiap elemen dalam tatasusunan, dan kemudian membandingkannya dengan setiap elemen selepasnya.
Kaedah 2: Gunakan fungsi terbina dalam PHP
Fungsi terbina dalam PHP array_unique()
untuk mengalih keluar nilai pendua dalam tatasusunan Dengan membandingkan panjang tatasusunan, anda boleh menentukan sama ada terdapat nilai pendua dalam tatasusunan asal Kodnya adalah seperti berikut:
function hasDuplicate($arr) { $unique_arr = array_unique($arr); return count($arr) != count($unique_arr); }
Kaedah ini mula-mula menggunakan fungsi array_unique()
untuk mengalih keluar nilai pendua, dan kemudian membandingkan sama ada panjang asal. tatasusunan dan tatasusunan yang dinyahduplikasi adalah sama.
Kaedah 3: Gunakan fungsi terbina dalam PHP
Fungsi terbina dalam PHP array_count_values()
boleh mengembalikan bilangan kejadian semua elemen dalam tatasusunan, dengan membandingkan sama ada bilangan kejadian setiap nilai dalam tatasusunan melebihi 1, Anda boleh menentukan sama ada terdapat nilai pendua dalam tatasusunan asal Kodnya adalah seperti berikut:
function hasDuplicate($arr) { $counts = array_count_values($arr); foreach ($counts as $count) { if ($count > 1) { return true; } } return false; }
Kaedah ini mula-mula menggunakan fungsi array_count_values()
untuk mendapatkan. bilangan kejadian setiap elemen, dan kemudian berulang melalui bilangan kejadian setiap elemen Jika terdapat Jika elemen muncul lebih daripada 1, ia bermakna terdapat nilai pendua dalam tatasusunan asal.
Kaedah 4: Gunakan fungsi terbina dalam PHP
Fungsi terbina dalam PHP array_diff_assoc()
Anda boleh membandingkan sama ada nilai kunci dua tatasusunan adalah sama dengan membandingkan perbezaan antara tatasusunan asal dan tatasusunan nyahduplikasi, Anda boleh menentukan sama ada terdapat nilai pendua dalam tatasusunan asal Kodnya adalah seperti berikut:
function hasDuplicate($arr) { $unique_arr = array_unique($arr); $diff_arr = array_diff_assoc($arr, $unique_arr); return !empty($diff_arr); }
Kaedah ini mula-mula menggunakan fungsi array_unique()
untuk. alih keluar nilai pendua, kemudian gunakan fungsi array_diff_assoc()
untuk membandingkan dua tatasusunan, dan akhirnya menentukan perbezaannya. Jika tidak, ini bermakna terdapat nilai pendua dalam tatasusunan asal.
Ringkasnya, keempat-empat kaedah di atas semua boleh digunakan untuk menentukan sama ada tatasusunan mempunyai nilai yang sama, masing-masing mempunyai kelebihan dan kekurangannya sendiri.
Atas ialah kandungan terperinci Bagaimana untuk menentukan sama ada tatasusunan mempunyai nilai yang sama dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!