ホームページ > バックエンド開発 > PHPチュートリアル > PHP で array_unique 関数を使用して重複した配列を削除する方法

PHP で array_unique 関数を使用して重複した配列を削除する方法

王林
リリース: 2023-06-26 13:06:01
オリジナル
828 人が閲覧しました

PHP 言語では、配列は非常に一般的なデータ構造です。ただし、開発プロセス中に、アレイの重複排除が必要なシナリオに遭遇することがよくあります。このとき、PHPに用意されているarray_unique関数が便利です。

array_unique 関数は、配列内の重複した値を削除するために使用される関数です。その使用法は非常に簡単で、配列をパラメータとして受け取り、重複を排除した配列を返すことができます。

次に、array_unique 関数の使用法を詳しく紹介します。

  1. 基本的な使用法

最も基本的な使用法は、単に配列を渡すことです。はい、以下に示すように:

$arr = array('a', 'b', 'c', 'a', 'b');
$newArr = array_unique($arr);
print_r($newArr);
ログイン後にコピー

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

Array
(
    [0] => a
    [1] => b
    [2] => c
)
ログイン後にコピー

元の配列内の重複した値「a」と「b」が削除されていることがわかります。 。

  1. 多次元配列の重複排除

多次元配列の重複排除が必要な場合は、array_unique 関数を使用することもできますが、 array_unique 関数は単純なものしかできません。これは 1 次元配列を処理するため、多次元配列を処理するにはいくつかのトリックを使用する必要があります。

たとえば、次の多次元配列の場合、重複排除する必要があります:

$arr = array(
    array('a', 'b', 'c'),
    array('a', 'd', 'e'),
    array('a', 'b', 'c'),
);
ログイン後にコピー

重複排除処理には次のコードを使用できます:

$tempArray = array();
foreach($arr as $key=>$value){
   $tempArray[$key] = serialize($value);
}
$tempArray = array_unique($tempArray);
foreach($tempArray as $key=>$value){
   $tempArray[$key] = unserialize($value);
}
print_r($tempArray);
ログイン後にコピー

出力結果

Array
(
    [0] => Array
        (
            [0] => a
            [1] => b
            [2] => c
        )

    [1] => Array
        (
            [0] => a
            [1] => d
            [2] => e
        )

)
ログイン後にコピー

ご覧のとおり、重複した配列が削除されています。

  1. カスタム比較関数

より複雑な重複排除要件を達成するために、カスタム比較関数が必要になる場合があります。現時点では、array_filter 関数を使用してこれを実現できます。

たとえば、次のコードは、指定されたキー値に従って重複排除を実現できます:

$arr = array(
    array('name' => 'Tom', 'age' => 20),
    array('name' => 'Jack', 'age' => 22),
    array('name' => 'Tom', 'age' => 25),
);

function compare($v1, $v2){
    return $v1['name'] == $v2['name'];
}

$newArr = array();
foreach($arr as $value){
    if(! in_array($value, $newArr, true)){
        $newArr[] = $value;
    }
}

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

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

Array
(
    [0] => Array
        (
            [name] => Tom
            [age] => 20
        )

    [1] => Array
        (
            [name] => Jack
            [age] => 22
        )

)
ログイン後にコピー

次に従って重複が排除されていることがわかります。 「名前」の値。

概要

PHP の array_unique 関数は、非常に便利な重複排除関数です。単純に 1 次元配列の重複を排除できますが、いくつかのテクニックを使用して多次元配列を処理することもできます。この問題は、比較関数をカスタマイズしてより複雑な重複排除要件を達成することによっても解決できます。開発プロセス中、配列の重複を正確かつ迅速に排除すると、プログラムの効率と開発効率が向上するため、開発者は array_unique 関数の正しい使用法を習得する必要があります。

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

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