現在の位置: ホーム> 最新記事一覧> PHPは2次元配列の重複排除スキルを実装しています。Array_unique関数を使用します

PHPは2次元配列の重複排除スキルを実装しています。Array_unique関数を使用します

gitbox 2025-07-18

array_unique関数を理解します

PHPでは、array_unique関数を使用して、配列内の重複値を削除し、新しい配列を返します。 1次元配列の場合、この機能は非常に便利です。ただし、2次元配列を処理する場合、Array_uniqueを直接適用できないため、他の方法を使用して2次元Arrayの重複排除を実装する必要があります。この記事では、Array_uniqueを組み合わせて2次元配列の重複排除を実現する方法を紹介します。

問題の背景

複数のサブアレイを含む2次元配列があり、それぞれが要素を重複している可能性があるとします。配列内の複製サブアレイを削除し、1つだけを保持する必要があります。これが例です:

 
$fruits = array(
   array("apple", "banana", "orange"),
   array("banana", "grapefruit", "apple"),
   array("kiwi", "grapefruit", "banana")
);

上記の例では、最初のサブアレイは2番目のサブアレイと同じであるため、削除する必要があります。同様に、2番目と3番目のサブアレイは同じであり、最終結果は次のように重複する必要があります。

 
$fruits = array(
   array("apple", "banana", "orange"),
   array("banana", "grapefruit", "apple"),
   array("kiwi", "grapefruit", "banana")
);

解決

2次元アレイを推定するために、他のPHP関数と組み合わせてarray_unique関数を使用できます。特定の手順は次のとおりです。

2D配列を1D配列に変換します

まず、2次元配列を1次元配列に変換して、array_uniqueを使用して重複排除できるようにします。 array_mapおよびcall_user_func_arrayを介して実装できます。

 
$flattened = call_user_func_array('array_merge', $fruits);

このコードは、array_mergeを使用してすべてのサブリージョンを1次元配列に組み合わせ、call_user_func_array関数を使用して動的に呼び出します。

重複排除にはarray_uniqueを使用します

次に、Array_uniqueを使用して、1次元配列を推定します。

 
$unique = array_unique($flattened);

このコードは、$一意の変数に重複排除後の結果を保存します。

1次元配列を2次元配列に変換します

最後に、1次元配列を2次元配列に再変換する必要があり、Array_Chunk関数を使用して配列を分割できます。

 
$chunked = array_chunk($unique, count($fruits[0]));

array_chunk関数を使用して、各サブアレイの長さに応じて1次元配列を回復してファイナルを取得しますdeduplication-deduplication-deduplication-deduplication-deduplication-deduplication-deduplication-deduplication-deduplication-deduplication-d eduplication-deduplication-deduplication-deduplication-deduplication-deduplication-deduplication-deduplication-deduplication-deduplication-de

完全なコードの例

これが完全なサンプルコードです:

 
$fruits = array(
   array("apple", "banana", "orange"),
   array("banana", "grapefruit", "apple"),
   array("kiwi", "grapefruit", "banana")
);

$flattened = call_user_func_array('array_merge', $fruits);
$unique = array_unique($flattened);
$chunked = array_chunk($unique, count($fruits[0]));

print_r($chunked);

このコードを実行すると、出力は次のとおりです。

 Array
(
    [0] => Array
        (
            [0] => apple
            [1] => banana
            [2] => orange
        )

    [1] => Array
        (
            [0] => banana
            [1] => grapefruit
            [2] => apple
        )

    [2] => Array
        (
            [0] => kiwi
            [1] => grapefruit
            [2] => banana
        )
)

要約します

上記の方法を使用して、Array_unique関数を使用して2次元Arrayをリミックスしました。最初に、2次元配列を1次元配列に変換し、Array_uniqueを使用して重複排除し、最終的に1次元配列を2次元配列に変換します。この方法はシンプルで効果的であり、重複したサブアレイをすばやく削除するのに役立ちます。

Array_uniqueは、まったく同じ値のサブアレイのみを削除できることに注意する必要があります。同じ構造で異なる要素でサブアレイを削除する必要がある場合、それを処理するにはより複雑なコードが必要になる場合があります。この記事がPHPでarray_unique関数をよりよく理解し、適用するのに役立つことを願っています。