PHPで重複した配列を削除する方法

PHPz
リリース: 2023-03-29 14:05:38
オリジナル
540 人が閲覧しました

PHP では、配列は非常に一般的に使用されるデータ型であり、ニーズを満たすために配列の重複を排除する必要がある場合があります。では、PHP で重複した配列を削除するにはどうすればよいでしょうか?

1. PHP 配列重複排除関数

PHP は、配列重複排除の実装に使用できる 2 つの関数、array_unique() と array_diff_key() を提供します。

  1. array_unique() 関数

array_unique() 関数は、配列から重複した値を削除し、新しい配列を返すことができます。

サンプル コード:

$arr = array("apple", "banana", "cherry", "cherry", "banana");
$arr = array_unique($arr);
print_r($arr);
ログイン後にコピー

出力結果:

Array
(
    [0] => apple
    [1] => banana
    [2] => cherry
)
ログイン後にコピー

array_unique() 関数が元の配列内の重複要素を正常に削除していることがわかります。

  1. array_diff_key() 関数

array_diff_key() 関数は 2 つの配列を比較し、2 つの配列間の相違点のキー名を返すことができます。

サンプル コード:

$array1 = array("a" => "red", "b" => "green", "c" => "blue");
$array2 = array("a" => "red", "b" => "green", "d" => "yellow");

$result = array_diff_key($array1, $array2);
print_r($result);
ログイン後にコピー

出力結果:

Array
(
    [c] => blue
)
ログイン後にコピー

この例では、array_diff_key() 関数は、$array2 と異なる $array1 の部分を除外し、新しい配列を返します。

2. 配列の重複排除を手動で実装する

PHP 関数を使用することに加えて、配列の重複排除を手動で実装することもできます。

  1. 方法 1

for ループと if ステートメントを使用して配列を走査し、重複する要素を特定して削除します。

サンプル コード:

$arr = array(1, 2, 5, 2, 1, 6, 7, 8, 7, 9);
$new_arr = array();

for ($i = 0; $i < count($arr); $i++) {
    if (!in_array($arr[$i], $new_arr)) {
        $new_arr[] = $arr[$i];
    }
}

print_r($new_arr);
ログイン後にコピー

出力結果:

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

in_array() 関数は、元の配列の要素が新しい配列にすでに存在するかどうかを判断し、存在しない場合は追加します。新しい配列に。

  1. 方法 2

array_flip() 関数を使用して配列を反転し、重複するキーと値のペアを削除し、array_flip() 関数を使用して配列を反転します。

サンプル コード:

$arr = array(1, 2, 5, 2, 1, 6, 7, 8, 7, 9);
$new_arr = array_flip(array_flip($arr));

print_r($new_arr);
ログイン後にコピー

出力結果:

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

このメソッドはループを使用する必要はなく、array_flip() 関数を 2 回使用するだけです。

3. 概要

上記は、PHP で重複した配列を削除するためのいくつかの方法であり、特定の状況に応じて対応する方法を選択できます。 array_unique()関数とarray_diff_key()関数はPHP独自の関数で比較的効率が高く、手動で実装するには大量のコードが必要ですが、実情に応じて柔軟に調整・最適化することが可能です。

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

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