PHP開発において、配列を結合する際、配列内に重複した値が存在する場合があり、結合した配列から重複した値を削除したいのですが、どう対処すればよいでしょうか?この記事では、配列を簡単に結合して重複を削除できるシンプルで実用的な方法を紹介します。
方法 1: array_merge を array_unique と組み合わせて使用する
PHP の array_merge 関数は、1 つ以上の配列を 1 つの配列にマージするため、配列のマージのニーズを満たすことができます。配列内の重複する値を削除しました。これら 2 つの機能を組み合わせることで、マージと重複排除の機能を実現できます。
サンプル コードは次のとおりです。
$array1 = array('a', 'b', 'c'); $array2 = array('b', 'c', 'd'); $array3 = array('c', 'd', 'e'); $merged_array = array_merge($array1, $array2, $array3); $unique_array = array_unique($merged_array); print_r($unique_array);
出力結果は次のとおりです。
Array ( [0] => a [1] => b [2] => c [3] => d [4] => e )
上記のコードでは、最初に 3 つの配列、つまり $array1、$ が定義されています。配列2と$配列3。次に、array_merge 関数を使用して、これら 3 つの配列を 1 つの配列 $merged_array にマージします。次に、array_unique 関数を使用して重複する値を削除し、最後にマージされ重複が排除された配列 $unique_array を取得します。
方法 2: " " 演算子を使用する
PHP では、" " 演算子を使用して 2 つの配列をマージし、重複する値を削除することもできます。この演算子は、最初の配列内の重複したキー値を 2 番目の配列から削除します。
サンプル コードは次のとおりです。
$array1 = array('a', 'b', 'c'); $array2 = array('b', 'c', 'd'); $array3 = array('c', 'd', 'e'); $merged_array = $array1 + $array2 + $array3; print_r($merged_array);
出力結果は次のとおりです。
Array ( [0] => a [1] => b [2] => c [3] => d [4] => e )
上記のコードでは、最初に 3 つの配列、つまり $array1、$ が定義されています。配列2と$配列3。次に、" " 演算子を使用して、これら 3 つの配列を 1 つの配列 $merged_array にマージします。 2 番目の配列と 1 番目の配列には重複するキー値があるため、「 」演算子は 1 番目の配列内の重複するキー値を削除します。最後に、マージおよび重複排除された配列 $merged_array が取得されます。
方法 3: array_reduce 関数を使用する
上記の 2 つの方法に加えて、PHP の array_reduce 関数を使用して配列をマージし、重複を削除することもできます。 array_reduce 関数では、配列をマージするためのコールバック関数をカスタマイズして、重複した値を削除する機能を実現できます。
サンプル コードは次のとおりです:
$array1 = array('a', 'b', 'c'); $array2 = array('b', 'c', 'd'); $array3 = array('c', 'd', 'e'); $merged_array = array_reduce(array($array1, $array2, $array3), function ($merged, $arr) { foreach ($arr as $value) { if (!in_array($value, $merged)) { array_push($merged, $value); } } return $merged; }, array()); print_r($merged_array);
出力結果は次のとおりです:
Array ( [0] => a [1] => b [2] => c [3] => d [4] => e )
上記のコードでは、array_reduce 関数を使用して 3 つの配列を 1 つにマージします。配列。このうち、第 1 パラメータは処理対象の配列、第 2 パラメータはコールバック関数、第 3 パラメータはコールバック関数の初期値です。コールバック関数内で、foreach ループを使用して各配列の値を反復処理し、in_array 関数を使用してマージされた配列に値が存在するかどうかを確認します。存在しない場合は、マージされた配列に値が追加され、最終的なマージ結果が返されます。
要約すると、PHP では 3 つの方法を使用して配列を結合し、重複を削除できます。これらのメソッドは、" " 演算子と array_reduce 関数を使用して、array_merge と array_unique を組み合わせたものです。さまざまなニーズやシナリオに応じて、アレイの結合と重複排除を実現する適切な方法を選択できます。
以上がPHPで配列をマージし、重複を削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。