ホームページ > バックエンド開発 > PHPの問題 > PHP で配列番号が繰り返されているかどうかを確認する方法と重複を削除する方法

PHP で配列番号が繰り返されているかどうかを確認する方法と重複を削除する方法

PHPz
リリース: 2023-04-23 09:41:54
オリジナル
1199 人が閲覧しました

日常の開発では、特にフォームデータや統計データなどを処理する場合に、配列番号が重複しているかどうかを判断し、それらを削除する必要に遭遇することがよくあります。この記事では、PHP で配列番号が重複しているかどうかを確認し、それらを削除する方法をいくつか紹介します。

1. count 関数と array_unique 関数を使用する

PHP では、count 関数を使用して配列要素の数をカウントし、array_unique 関数を使用して配列内の重複要素を削除できます。これら 2 つの関数を一緒に使用すると、配列内の数値が繰り返されているかどうかを判断し、それらを削除できます。

サンプルコード:

$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 '数组中有重复的数字';
}
ログイン後にコピー

出力結果:

数组中有重复的数字
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

2. in_array 関数を使用します

php の in_array 関数は、要素が配列内にあります。 in_array 関数を使用すると、配列を走査し、配列内に重複要素があるかどうかを確認できます。

サンプルコード:

$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;;
}
ログイン後にコピー

出力結果:

数组中有重复的数字
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

3. array_count_values 関数を使用する

php の array_count_values 関数は、配列番号内の同じ要素を数えて、連想配列を返します。ここで、キーは配列内の要素の値を表し、値は要素が配列内に出現する回数を表します。 array_count_values 関数を使用すると、配列内の各要素の出現数をカウントできます。要素が 1 より多く出現する場合、その要素が繰り返されていることを意味します。

サンプルコード:

$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 '数组中没有重复的数字';
}
ログイン後にコピー

出力結果:

数组中有重复的数字
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

4. array_flip 関数と array_keys 関数を使用する

php の array_flip 関数はキーを交換できます。配列のキーと値を取得し、新しい配列を返します。 array_keys 関数と組み合わせると、新しい配列の値を元の配列のキーとして使用して、元の配列に重複する要素があるかどうかを判断できます。

サンプル コード:

$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 '数组中没有重复的数字';
}
ログイン後にコピー

出力結果:

数组中有重复的数字
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

5. array_unique 関数と array_diff 関数を使用して、配列内に重複要素があるかどうかを確認します

In php array_diff 関数は、配列の差を計算し、差の配列を返すことができます。 array_unique 関数と組み合わせると、元の配列と重複排除された配列の違いを確認し、元の配列に重複要素があるかどうかを判断できます。

サンプル コード:

$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 '数组中没有重复的数字';
}
ログイン後にコピー

出力結果は次のとおりです:

数组中有重复的数字
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

上記は、PHP で配列番号が繰り返されているかどうかを判断し、重複を排除するためのいくつかの実装方法です。それぞれの方法にはそれぞれ長所と短所があり、状況に応じて適切な方法を選択することで、より良い結果を得ることができます。

以上がPHP で配列番号が繰り返されているかどうかを確認する方法と重複を削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート