PHP は 1 次元配列から重複要素を削除します

WBOY
リリース: 2023-05-19 09:44:37
オリジナル
1259 人が閲覧しました

1 次元配列の場合、重複要素がある場合、これらの重複要素を削除することはプログラミングにおける一般的な要件です。 PHP では、いくつかの方法でこれを実現できます。この記事では、一般的に使用されるいくつかの方法を紹介します。

方法 1: array_unique 関数を使用する

array_unique 関数は PHP に付属する関数で、配列から重複した要素を簡単に削除できます。 1 次元配列だけでなく、多次元配列の重複排除操作にも使用できます。

サンプルコード:

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

出力結果:

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

array_unique 関数を使用して重複要素を削除するのは非常に簡単です。ただし、array_unique 関数は同じ値を持つ重複要素のみを削除でき、同じキー値を持つ重複要素は削除できないことに注意してください。

方法 2: ループ トラバーサルを使用する

重複を削除するもう 1 つの方法は、ループを使用して配列をトラバースし、各要素とその後の要素を 1 つずつ比較することです。見つかったので削除します。

サンプルコード:

$array = array('a', 'b', 'c', 'a', 'd', 'c');
$count = count($array);
for($i=0;$i<$count;$i++){
    for($j=$i+1;$j<$count;$j++){
        if($array[$i] == $array[$j]){
            unset($array[$j]);
        }
    }
}
print_r($array);
ログイン後にコピー

出力結果:

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

ループトラバーサル方式を使用しても簡単に重複を実現できますが、配列が比較的大きい場合、パフォーマンスに影響を及ぼす可能性があります。影響。

方法 3: array_flip 関数と array_values 関数を使用する

この方法では、配列のキーと値を交換できる PHP の組み込みの array_flip 関数を使用します。このようにして、元の配列に重複した値がある場合、交換された配列には重複したキーが存在し、最後のキーのみが保持され、残りは自動的に上書きされます。

次に、array_values 関数を使用して、並べ替えられた配列のインデックスを再作成し、キーと値の対応関係を削除して、重複排除された配列を取得します。

サンプル コード:

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

出力結果:

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

このメソッドの利点は、重複をすばやく削除し、元の配列の順序を保持できることです。ただし、値が文字列である 1 次元配列に対してのみ機能し、他のタイプのデータ (配列、オブジェクトなど) では予期しない結果が発生します。

要約すると、1 次元配列から重複要素を削除するには、PHP に付属の array_unique 関数を使用するか、ループ トラバーサル メソッドまたは array_flip 関数と array_values 関数を使用できます。実際のニーズとデータ型に応じて、適切な方法を選択すると、コードの効率と読みやすさを向上させることができます。

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

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