Rumah > pembangunan bahagian belakang > masalah PHP > Bagaimana untuk menentukan sama ada nilai tatasusunan adalah daripada jenis data yang sama dalam PHP

Bagaimana untuk menentukan sama ada nilai tatasusunan adalah daripada jenis data yang sama dalam PHP

PHPz
Lepaskan: 2023-04-26 10:02:52
asal
553 orang telah melayarinya

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 "原数组中的值是相同的";
Salin selepas log masuk
Salin selepas log masuk

} else {

echo "原数组中的值是不相同的";
Salin selepas log masuk
Salin selepas log masuk

}

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 "原数组中的值是相同的";
Salin selepas log masuk
Salin selepas log masuk

} lain {

echo "原数组中的值是不相同的";
Salin selepas log masuk
Salin selepas log masuk

}

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan