PHP配列を重複せずに結合する方法

WBOY
リリース: 2023-05-19 20:40:36
オリジナル
807 人が閲覧しました

PHP は非常に人気のあるプログラミング言語で、配列に対してさまざまな操作を実行できる強力な配列関数を備えています。 PHP では、配列の連結は非常に一般的な操作です。ただし、2 つの配列を連結する必要がある場合、重複する要素が発生する可能性があります。それでは何をすべきでしょうか?この記事では、PHP 配列関数を使用して配列を結合し、要素の重複を避ける方法を紹介します。

1. array_merge() 関数を使用して配列を結合する

PHP には、2 つ以上の配列を新しい配列に結合するために使用できる非常に便利な関数 array_merge() が用意されています。その構文は次のとおりです。

array array_merge ( array $array1 [, array $... ] )
ログイン後にコピー

この関数は 2 つ以上の配列をパラメータとして受け入れることができ、これらの配列内のすべての要素を新しい配列にマージし、この新しい配列を返します。以下は簡単なデモンストレーションです:

$array1 = array('a', 'b', 'c');
$array2 = array('d', 'e', 'f');
$result = array_merge($array1, $array2);
print_r($result);
ログイン後にコピー

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

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

同様に、3 つの配列を新しい配列にマージできます:

$array1 = array('a', 'b', 'c');
$array2 = array('d', 'e', 'f');
$array3 = array('g', 'h', 'i');
$result = array_merge($array1, $array2, $array3);
print_r($result);
ログイン後にコピー

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

Array (
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => e
    [5] => f
    [6] => g
    [7] => h
    [8] => i
)
ログイン後にコピー

出力からわかるように、array_merge() 関数は複数の配列を 1 つの配列にマージできます。ただし、2 つ以上の配列に同じ要素がある場合、それらの要素は新しい配列で繰り返されます。

2. array_unique() 関数を使用して重複要素を削除します

PHP には非常に便利な配列関数 array_unique() が用意されており、これを使用して配列から重複要素を削除し、新しい要素を返すことができます。 array では、最初に出現した要素のみが保持されます。その構文は次のとおりです。

array array_unique ( array $array [, int $sort_flags = SORT_STRING ] );
ログイン後にコピー

この関数は配列をパラメータとして受け取り、重複した要素を含まない新しい配列を返します。デフォルトでは、この関数は重複した要素を削除し、最初に出現した要素を保持します。以下は簡単なデモンストレーションです:

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

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

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

出力結果からわかるように、array_unique() 関数は配列内の重複要素を削除し、新しい配列を返します。この新しい配列には、最初に出現した要素のみが保持されます。

3. array_merge() 関数と array_unique() 関数を使用して配列を結合する

2 つの配列を新しい配列に結合することは、非常に一般的な操作です。ただし、両方の配列に同一の要素がある場合、それらの要素は新しい配列で繰り返されます。この状況を回避するには、まず array_merge() 関数を使用して 2 つの配列を結合し、次に array_unique() 関数を使用して重複要素を削除します。以下は簡単なデモンストレーションです:

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

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

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

出力結果からわかるように、最初に array_merge() 関数を使用して $array1 を結合します。および $array2 配列を新しい配列に変換し、array_unique() 関数を使用して重複要素を削除し、最後に重複しない新しい配列を取得します。

4. array_push() 関数を使用して配列を結合する

PHP には、1 つ以上の要素を配列の末尾にプッシュするために使用できる別の関数 array_push() も用意されています。この関数の構文は次のとおりです。

int array_push ( array &$array , mixed $values [, mixed $... ] );
ログイン後にコピー

この関数は配列をパラメータとして受け取り、1 つ以上の要素を配列の末尾にプッシュして、新しい配列の長さを返します。以下は簡単なデモンストレーションです:

$array1 = array('a', 'b', 'c');
$array2 = array('d', 'e', 'f');
foreach($array2 as $value) {
    if(!in_array($value, $array1)) {
        array_push($array1, $value);
       }
}
print_r($array1);
ログイン後にコピー

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

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

出力結果からわかるように、最初に $array1 配列の要素と要素を比較します。この要素が $array1 配列に存在しない場合、array_push() 関数を使用してこの要素を配列の最後にプッシュし、最終的に重複しない新しい配列を取得します。

要約:

上記の紹介を通じて、PHP で配列を重複せずに結合する方法が非常に簡単であることがわかりました。 PHP が提供する配列関数 array_merge() および array_unique() を使用して操作することも、array_push() 関数を使用して操作することもできます。ただし、これらの関数を使用する場合は、配列内に null 値またはブール値が存在する可能性があることを十分に考慮する必要があることに注意してください。これらの値を比較すると、いくつかの問題が発生する可能性があるためです。したがって、これらの機能を使用する場合は、プログラムの正確性と信頼性を確保するために、最初に判断およびフィルタリングを行うことが最善です。

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

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