PHP's array_unique()
fungsi mengendalikan kekunci angka dan rentetan yang berbeza terutamanya dalam bagaimana ia menentukan keunikan. Apabila berurusan dengan nilai pendua, ia mengekalkan kekunci pertama yang ditemui. Walau bagaimanapun, jenis utama itu sendiri mempengaruhi pemeliharaan ini. Unsur -unsur berikutnya dengan nilai yang sama tetapi kekunci rentetan yang berbeza akan dikeluarkan. Ia menyimpan elemen dengan kekunci angka terendah apabila menghadapi nilai pendua. Kekunci angka yang lebih tinggi yang dikaitkan dengan nilai yang sama dibuang. Keunikan ditentukan oleh nilai, dan kunci pertama yang ditemui (sama ada rentetan atau angka) dikekalkan. Fungsi ini mengutamakan kejadian pertama berdasarkan urutan utama.
Bagaimana fungsi Array_unique () PHP membandingkan nilai angka dan rentetan untuk pengesanan pendua? Ini bermakna juggling jenis terlibat. Ia tidak membandingkan jenis data dengan ketat; Sebaliknya, ia memeriksa jika nilai -nilai dianggap "sama" selepas peraturan paksaan jenis PHP digunakan. Perbandingan longgar ini boleh menyebabkan hasil yang tidak dijangka jika anda tidak berhati -hati. Ini boleh membawa kepada deduplikasi yang tidak diingini kerana jenis juggling. Anda mungkin kehilangan unsur -unsur yang anda ingin simpan kerana PHP menganggapnya sama walaupun jenisnya berbeza.
Sebagai contoh, "0" (String) dan 0 (integer) akan dianggap sebagai sama, mengakibatkan hanya satu yang dikekalkan. Begitu juga, "1.0" (rentetan) dan 1 (integer) juga akan dianggap sama. Tingkah laku ini boleh menjadi masalah jika anda perlu mengekalkan perbezaan antara rentetan dan perwakilan angka. Ketergantungan fungsi pada kejadian pertama mungkin juga membawa kepada hasil yang tidak dijangka bergantung kepada pesanan data anda. Jenis:
Perbandingan jenis-menyedari: array_unique()
bukannya bergantung pada
Atas ialah kandungan terperinci Apakah perbezaan antara perbandingan deduplikasi array php antara nombor dan rentetan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!