現在の位置: ホーム> 最新記事一覧> Array_flip()とarray_unique()機能を組み合わせて使用​​して、PHPアレイの重複値の問題を効果的に解決する方法は?

Array_flip()とarray_unique()機能を組み合わせて使用​​して、PHPアレイの重複値の問題を効果的に解決する方法は?

M66 2025-06-15

PHPプログラミングでは、アレイで複製値を処理することは一般的な要件です。 PHPは、これらの問題に対処するのに役立つ多くの組み込み関数を提供します。その中で、 array_flip()array_unique()は2つの非常に有用な関数です。この記事では、これら2つの機能を組み合わせて使用​​して、配列内の値の重複の問題を効果的に解決する方法について説明します。

array_flip()array_unique()とは何ですか?

  1. array_flip()
    array_flip()関数は、配列のキーと値を交換します。つまり、配列内の値が新しいキーになり、元のキーが値になります。 array_flip()関数は、配列内の値が一意でなければならないことに注意する必要があります。そうしないと、重複するキー価値ペアを上書きします。

     $arr = ['a' => 'apple', 'b' => 'banana', 'c' => 'cherry'];
    $flipped = array_flip($arr);
    print_r($flipped);
    // 出力:
    // Array
    // (
    //     [apple] => a
    //     [banana] => b
    //     [cherry] => c
    // )
    
  2. array_unique()
    array_unique()関数は、配列内の複製値を削除するために使用されます。重複した値のない配列を返します。 array_unique()アレイ内の値を比較し、要素の最初の発生を保持し、残りの重複値を削除します。

     $arr = ['apple', 'banana', 'apple', 'cherry', 'banana'];
    $unique = array_unique($arr);
    print_r($unique);
    // 出力:
    // Array
    // (
    //     [0] => apple
    //     [1] => banana
    //     [3] => cherry
    // )
    

array_unique()array_flip()を使用します

実際の開発では、最初にアレイから重複した値を削除し、次にキーと値をフリップする必要がある場合があります。 array_flip()array_unique()を組み合わせることにより、特に配列のキーと値の間に特定の関係がある場合、Arrayの重複値を非常に簡単に処理できます。

例: array_flip()array_unique()を使用して、重複する値の問題を解決します

複数のユーザーのアクセスレコードを含む配列があるとします。各レコードには訪問するURLがあり、これらのレコードから重複したURLを削除し、各URLの一意のレコードを保持したいと考えています。

 // これは複数のユーザーアクセスレコードを含むURLの配列であると仮定します
$urls = [
    'https://www.example.com/page1',
    'https://www.example.com/page2',
    'https://m66.net/page3',
    'https://www.example.com/page1',
    'https://m66.net/page4',
    'https://m66.net/page3'
];

// 使用array_unique重複した値を削除します
$uniqueUrls = array_unique($urls);

// 使用array_flipURLをキーとして使用します,元の配列インデックスを値として使用します
$flippedUrls = array_flip($uniqueUrls);

// ドメイン名の部分を置き換えますm66.net
foreach ($flippedUrls as $key => $value) {
    $flippedUrls[$key] = preg_replace('/https:\/\/[^\/]+/', 'https://m66.net', $key);
}

print_r($flippedUrls);

出力

 Array
(
    [https://m66.net/page1] => 0
    [https://m66.net/page2] => 1
    [https://m66.net/page3] => 2
    [https://m66.net/page4] => 4
)

この例では、最初にarray_unique()関数を使用して、重複したURLを削除します。次に、 array_flip()を使用して、各URLをキーとしてフリップします。次に、すべてのURLドメイン名をpreg_replace()を介してm66.netに置き換えます。

要約します

array_flip()array_unique()を組み合わせることにより、配列から重複した値を非常に効率的に削除し、アレイで必要なキー値交換操作を実行できます。 URLまたは他のデータに関連する配列を処理する場合、これら2つの機能を使用すると、データをすばやくクリーンアップし、コードのシンプルさと保守性を効果的に変換し、改善できます。