ホームページ > バックエンド開発 > PHPの問題 > PHPは配列から重複した値を削除できますか?

PHPは配列から重複した値を削除できますか?

PHPz
リリース: 2023-04-27 16:14:54
オリジナル
423 人が閲覧しました

PHP プログラムを作成するプロセスでは、配列に対して重複排除操作を実行する必要があることがよくあります。重複排除の目的は、重複データによる干渉を回避し、プログラムのパフォーマンスを効果的に向上させることです。 PHP にとって、配列から重複値を削除することは非常に基本的な操作ですが、この記事では、PHP を使用してこの機能を実現する方法を紹介します。

1. array_unique() 関数を使用する

PHP には、配列から重複した値を削除して新しい配列を返すことができる、array_unique() という関数が用意されています。以下は、array_unique() 関数の基本構文です:

array array_unique ( array $array [, int $sort_flags = SORT_STRING ] )
ログイン後にコピー

パラメータの説明:

  • $array: 必須パラメータ、重複値が削除される配列。
  • $sort_flags: 配列の並べ替え方法を指定するために使用されるオプションのパラメーター。デフォルトは SORT_STRING で、文字列タイプでソートされます。

次は例です:

$arr = array(1, 2, 2, 3, 4, 4, 5);
$result = array_unique($arr);
print_r($result);
ログイン後にコピー

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

Array
(
    [0] => 1
    [1] => 2
    [3] => 3
    [4] => 4
    [6] => 5
)
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

2. キー値を使用して配列をリセットします

さらにarray_unique() 関数を使用すると、キー値を通じて重複を削除し、配列を新しい配列にリセットすることもできます。以下は例です:

$arr = array(1, 2, 2, 3, 4, 4, 5);
$new_arr = array_flip(array_flip($arr));
print_r($new_arr);
ログイン後にコピー

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

Array
(
    [0] => 1
    [1] => 2
    [3] => 3
    [4] => 4
    [6] => 5
)
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

3. ループ トラバーサルを使用する

上記の 2 つの方法に加えて、ループ トラバーサルを使用することもできます。重複排除を実行します。このメソッドの基本的な考え方は、まず空の配列を作成し、元の配列の各要素をループします。要素が新しい配列にない場合は、その要素を新しい配列に追加します。以下はサンプル コードです:

$arr = array(1, 2, 2, 3, 4, 4, 5);
$new_arr = array();
foreach ($arr as $value) {
    if (!in_array($value, $new_arr)) {
        $new_arr[] = $value;
    }
}
print_r($new_arr);
ログイン後にコピー

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

Array
(
    [0] => 1
    [1] => 2
    [3] => 3
    [4] => 4
    [6] => 5
)
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

4. array_reduce() 関数を使用します

array_reduce() 関数は、配列要素を反復的に削減するために使用されます。単一の値に変換します。この関数を使用すると、配列から重複した要素を簡単に削除できます。以下はサンプル コードです:

$arr = array(1, 2, 2, 3, 4, 4, 5);
$new_arr = array_reduce($arr, function($carry, $item){
    if(!in_array($item, $carry)){
        $carry[] = $item;
    }
    return $carry;
}, []);
print_r($new_arr);
ログイン後にコピー

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

Array
(
    [0] => 1
    [1] => 2
    [3] => 3
    [4] => 4
    [6] => 5
)
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

5. array_diff() 関数を使用します

array_diff() 関数は差分を比較するために使用されます配列のセット。この関数を使用すると、配列から重複した要素をすばやく削除できます。以下にサンプル コードを示します。

$arr = array(1, 2, 2, 3, 4, 4, 5);
$new_arr = array_diff($arr, array_unique($arr));
print_r($new_arr);
ログイン後にコピー

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

Array
(
    [1] => 2
    [4] => 4
)
ログイン後にコピー

6. array_filter() 関数を使用します。

array_filter() 関数は、要素をフィルタリングするために使用されます。配列。この関数を使用すると、配列から重複した要素をすばやく削除できます。以下はサンプルコードです:

$arr = array(1, 2, 2, 3, 4, 4, 5);
$new_arr = array_filter($arr, function($value, $key){
    return !in_array($value, array_slice($arr, 0, $key, true));
}, ARRAY_FILTER_USE_BOTH);
print_r($new_arr);
ログイン後にコピー

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

Array
(
    [0] => 1
    [1] => 2
    [3] => 3
    [4] => 4
    [6] => 5
)
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

概要

この記事では、PHP で配列の重複値を削除するさまざまな方法を紹介します。これらの方法を使用すると、PHP プログラムをより効率的に作成できます。 array_unique() 関数を使用する場合でも、キー値を使用して配列をリセットする場合でも、array_reduce() 関数、array_diff() 関数、または array_filter() 関数を使用してループ処理する場合でも、基本原理と応用方法をマスターしていれば、配列の重複排除操作を簡単に完全に実装できます。

以上がPHPは配列から重複した値を削除できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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