Dalam PHP, kita selalunya perlu menentukan sama ada nilai dalam tatasusunan adalah sama. Tetapi memandangkan PHP ialah bahasa yang ditaip lemah, kita perlu mempertimbangkan isu jenis data.
Untuk menentukan sama ada nilai dalam tatasusunan adalah sama, kita boleh menggunakan fungsi terbina dalam array_unique() untuk melaksanakan operasi penyahduplikasian.
Fungsi array_unique() akan mengembalikan tatasusunan baharu, di mana elemen itu akan dikekalkan pada kedudukan kejadian pertama dalam tatasusunan asal, dan semua elemen berikutnya akan dipadamkan. Selepas penduaan, kita boleh menentukan sama ada nilai dalam tatasusunan adalah sama dengan membandingkan bilangan elemen dalam tatasusunan asal dan tatasusunan baharu.
Sebagai contoh, katakan kita mempunyai tatasusunan seperti berikut:
$my_array = array("1", 1, "2", "2", 3, 3);
Kita boleh menggunakan fungsi array_unique() untuk deduplikasi:
$unique_array = array_unique($my_array);
Jika kita menggunakan fungsi count() untuk mengira elemen $my_array dan $unique_array masing-masing nombor, maka kita boleh membandingkan sama ada kedua-dua nilai adalah sama untuk menentukan sama ada nilai dalam tatasusunan asal adalah sama:
if (count($my_array ) === count($unique_array)) {
echo "原数组中的值是相同的";
} else {
echo "原数组中的值是不相同的";
}
Perlu diambil perhatian bahawa selepas menggunakan array_unique() berfungsi untuk menyahduplikasi tatasusunan, jenis elemen dalam tatasusunan baharu yang dikembalikan mungkin Perubahan akan berlaku. Contohnya, jika tatasusunan asal mengandungi rentetan dan nombor, selepas memadamkan nilai pendua, jenis elemen semuanya boleh menjadi jenis rentetan.
Untuk menyelesaikan masalah ini, kita boleh menggunakan operator perbandingan yang ketat (===) untuk menentukan sama ada nilai dalam tatasusunan adalah sama, dan sebelum perbandingan, kita perlu menggunakan array_map( ) berfungsi untuk memetakan semua nilai dalam tatasusunan Elemen semuanya ditukar kepada jenis yang sama. Sebagai contoh, kod berikut menunjukkan cara menggunakan fungsi array_map() untuk menukar semua elemen dalam tatasusunan kepada jenis integer:
$my_array = array("1", 1, "2", "2" , 3, 3);
$unique_array = array_unique(array_map('intval', $my_array));
if (count($my_array) === count($unique_array)) {
echo "原数组中的值是相同的";
} lain {
echo "原数组中的值是不相同的";
}
Secara umum, apabila menentukan sama ada nilai dalam tatasusunan adalah daripada jenis data yang sama dalam PHP, anda perlu untuk mempertimbangkan ciri-ciri bahasa yang ditaip lemah. Kita boleh menggunakan fungsi array_unique() untuk melaksanakan operasi penyahduplikasian dan menggunakan operator perbandingan yang ketat (===) untuk menentukan sama ada nilai dalam tatasusunan adalah sama. Jika tatasusunan mengandungi berbilang jenis data, kita perlu menggunakan fungsi array_map() untuk menukar semua elemen kepada jenis yang sama sebelum perbandingan.
Atas ialah kandungan terperinci Bagaimana untuk menentukan sama ada nilai tatasusunan adalah daripada jenis data yang sama dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!