Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menentukan sama ada nombor tatasusunan diulang dalam PHP dan cara mengalih keluar pendua

Bagaimana untuk menentukan sama ada nombor tatasusunan diulang dalam PHP dan cara mengalih keluar pendua

PHPz
PHPzasal
2023-04-23 09:12:051122semak imbas

Dalam pembangunan harian, kami sering menghadapi keperluan untuk menentukan sama ada nombor tatasusunan diulang dan mengalih keluarnya, terutamanya semasa memproses data borang, data statistik, dsb. Artikel ini akan memperkenalkan beberapa kaedah pelaksanaan dalam PHP untuk menentukan sama ada nombor tatasusunan diulang dan untuk mengalih keluar pendua.

1. Gunakan fungsi count dan array_unique

Dalam PHP, anda boleh menggunakan fungsi count untuk mengira bilangan elemen tatasusunan dan fungsi array_unique boleh mengalih keluar elemen pendua dalam tatasusunan. Menggunakan kedua-dua fungsi ini bersama-sama, anda boleh menentukan sama ada nombor dalam tatasusunan diulang dan mengalih keluarnya.

Kod contoh:

$arr = array(1,3,2,3,4,1,5);//测试数组
$count = count($arr);//统计数组元素的个数
$unique_count = count(array_unique($arr));//去重后的数组元素个数
if($count == $unique_count){
    echo '数组中没有重复的数字';
} else {
    echo '数组中有重复的数字';
}

Hasil output ialah:

数组中有重复的数字

2. Gunakan fungsi in_array

Fungsi in_array dalam php ialah digunakan untuk pertimbangan Sama ada elemen berada dalam tatasusunan. Anda boleh menggunakan fungsi in_array untuk merentasi tatasusunan dan menentukan sama ada terdapat unsur pendua dalam tatasusunan.

Kod contoh:

$arr = array(1,3,2,3,4,1,5);//测试数组
$repeat_flag = false;// 判断数组中是否存在重复元素的标志
for($i=0;$i<count($arr)-1;$i++){
    for($j=$i+1;$j<count($arr);$j++){
        if($arr[$i] == $arr[$j]) {// 数组中存在重复元素
            $repeat_flag = true;
            break;// 跳出循环
        }
    }
}
if($repeat_flag){
    echo &#39;数组中有重复的数字&#39;;
} else {
    echo &#39;数组中没有重复的数字&#39;;
}

Hasil output ialah:

数组中有重复的数字

3 Gunakan fungsi array_count_values ​​

Array_count_values ​​​​. fungsi dalam php boleh mengira tatasusunan Bilangan elemen yang sama dalam tatasusunan dan mengembalikan tatasusunan bersekutu, di mana kunci mewakili nilai elemen dalam tatasusunan dan nilai mewakili bilangan kali elemen itu muncul dalam tatasusunan. Anda boleh menggunakan fungsi array_count_values ​​untuk mengira bilangan kejadian setiap elemen dalam tatasusunan Jika elemen muncul lebih daripada 1, ini bermakna elemen itu berulang.

Kod sampel:

$arr = array(1,3,2,3,4,1,5);//测试数组
$n_arr = array_count_values($arr);// 利用array_count_values函数统计数组中每个元素出现次数
$repeat_flag = false;// 判断数组中是否存在重复元素的标志
foreach($n_arr as $n){
    if($n>1) {// 数组中存在重复元素
        $repeat_flag=true;
        break;// 跳出循环
    }
}
if($repeat_flag){
    echo '数组中有重复的数字';
} else {
    echo '数组中没有重复的数字';
}

Hasil output ialah:

数组中有重复的数字

4. Gunakan fungsi array_flip dan array_keys

Fungsi array_flip dalam php boleh Tukar kunci dan nilai dalam tatasusunan dan mengembalikan tatasusunan baharu. Digabungkan dengan fungsi array_keys, nilai dalam tatasusunan baharu boleh digunakan sebagai kunci dalam tatasusunan asal untuk menentukan sama ada terdapat unsur pendua dalam tatasusunan asal.

Kod contoh:

$arr = array(1,3,2,3,4,1,5);//测试数组
$new_arr = array_flip($arr);// 利用array_flip函数交换数组中的键和值
$repeat_flag=false;// 判断数组中是否存在重复元素的标志
foreach(array_keys($new_arr) as $k){// 将新数组中的值作为原数组中的键
    if(count($arr)-count(array_keys($arr,$k))>1){// 判断原数组中是否存在重复元素
        $repeat_flag=true;// 存在重复元素
        break;
    }
}
if($repeat_flag){
    echo '数组中有重复的数字';
} else {
    echo '数组中没有重复的数字';
}

Hasil keluaran ialah:

数组中有重复的数字

5 Gunakan fungsi array_unique dan array_diff untuk menentukan sama ada terdapat elemen pendua dalam tatasusunan

Fungsi array_diff dalam php boleh mengira perbezaan tatasusunan dan mengembalikan tatasusunan perbezaan. Digabungkan dengan fungsi array_unique, anda boleh menentukan perbezaan antara tatasusunan asal dan tatasusunan nyahduplikasi, dan kemudian menentukan sama ada terdapat unsur pendua dalam tatasusunan asal.

Kod contoh:

$arr = array(1,3,2,3,4,1,5);//测试数组
$unique_arr = array_unique($arr);// 利用array_unique函数去重
$diff_arr = array_diff($arr,$unique_arr);// 计算原数组与去重后的数组的差集,并返回差集数组
if(!empty($diff_arr)){// 差集不为空,说明原数组中存在重复元素
    echo '数组中有重复的数字';
} else {
    echo '数组中没有重复的数字';
}

Hasil output ialah:

数组中有重复的数字

Di atas adalah beberapa kaedah pelaksanaan untuk menentukan sama ada nombor tatasusunan diulang dan menyahgandakannya dalam PHP . Kaedah yang berbeza mempunyai kelebihan dan kekurangannya yang tersendiri Kita boleh memilih kaedah yang sesuai mengikut keadaan sebenar untuk mencapai hasil yang lebih baik.

Atas ialah kandungan terperinci Bagaimana untuk menentukan sama ada nombor tatasusunan diulang dalam PHP dan cara mengalih keluar pendua. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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