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

PHPz
リリース: 2023-04-27 10:12:27
オリジナル
881 人が閲覧しました

PHP では、配列内の各要素が一意であることを確認するために、配列から重複した要素を削除する必要がある場合があります。これは、データを操作する場合、特に大量のデータから一意の値を取得する必要がある場合に非常に役立ちます。この記事では、さまざまな PHP 関数とテクニックを使用して配列から重複値を削除する方法を説明します。

array_unique 関数を使用して重複を削除する

PHP には、配列内の重複値を削除する非常に単純な関数 array_unique が用意されています。この関数は、配列から重複する要素をすべて削除し、新しい配列を返します。以下は、array_unique 関数を使用して重複を削除するコード例です:

$original_array = array('apple', 'banana', 'orange', 'apple', 'kiwi');
$unique_array = array_unique($original_array);
print_r($unique_array);
ログイン後にコピー

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

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

上に示すように、この関数はすべての一意の項目を含む新しい配列を返します。元の配列内の繰り返し要素。この例の元の配列には 2 つの重複した「apple」要素が含まれていますが、保持されるのは 1 つだけであることに注意してください。

array_values 関数を使用したインデックスの再作成

上記の例からわかるように、array_unique 関数を使用すると、配列内の重複要素を簡単に削除できますが、配列のキーはリセットされません。配列。これは、新しい配列を使用する場合は、元の配列とは異なるインデックスを取得することを意味します。 0 から増加するインデックスが必要な場合は、array_values 関数を使用してインデックスを再作成できます。以下は、array_values 関数を使用して配列のインデックスを再作成するサンプル コードです:

$original_array = array('apple', 'banana', 'orange', 'apple', 'kiwi');
$unique_array = array_values(array_unique($original_array));
print_r($unique_array);
ログイン後にコピー

出力は次のとおりです:

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

上に示すように、この例では、最初に array_unique 関数を使用して重複を削除します。この関数は、新しい配列のインデックスを再作成します。最後に、0 から増加するインデックスを使用して、元の配列内のすべての一意の要素を含む新しい配列を取得します。

foreach ループと in_array 関数を使用して重複を削除する

array_unique 関数と array_values 関数に加えて、loop と in_array 関数を使用して配列内の重複要素を削除することもできます。以下は、foreach ループと in_array 関数を使用した重複排除のサンプル コードです:

$original_array = array('apple', 'banana', 'orange', 'apple', 'kiwi');
$unique_array = array();
foreach ($original_array as $value) {
    if (!in_array($value, $unique_array)) {
        $unique_array[] = $value;
    }
}
print_r($unique_array);
ログイン後にコピー

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

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

上に示すように、この例では foreach ループを使用して各要素を走査します。そして、in_array 関数を使用して、現在の要素が新しい配列にすでに存在するかどうかを確認します。現在の要素が新しい配列に存在しない場合、その要素は新しい配列に追加されます。最後に、元の配列内のすべての一意の要素を含む新しい配列が取得されます。

foreach ループと array_search 関数を使用して重複を削除する

in_array 関数に加えて、array_search 関数を使用して、配列内に要素が存在するかどうかを確認することもできます。要素のインデックス値を取得する必要がある場合、array_search 関数は配列内の要素のキーを返します。以下は、foreach ループと array_search 関数を使用した重複排除のサンプル コードです:

$original_array = array('apple', 'banana', 'orange', 'apple', 'kiwi');
$unique_array = array();
foreach ($original_array as $value) {
    if (array_search($value, $unique_array) === false) {
        $unique_array[] = $value;
    }
}
print_r($unique_array);
ログイン後にコピー

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

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

上に示したように、この例では foreach ループを使用して各要素を走査します。そして、array_search 関数を使用して、現在の要素が新しい配列にすでに存在するかどうかを確認します。現在の要素が新しい配列に存在しない場合、その要素は新しい配列に追加されます。最後に、元の配列内のすべての一意の要素を含む新しい配列が取得されます。

結論

array_unique 関数、array_values 関数、foreach ループと in_array 関数、または foreach ループと array_search 関数のいずれを使用しても、PHP の配列から重複要素を簡単に削除できます。これらの手法を使用するときは、変数名とコード構造を覚えておいてください。配列から重複を削除する方法を理解すると、データをより適切に処理および操作できるようになります。

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

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