PHP では、配列は非常に一般的に使用されるデータ型であり、ニーズを満たすために配列の重複を排除する必要がある場合があります。では、PHP で重複した配列を削除するにはどうすればよいでしょうか?
1. PHP 配列重複排除関数
PHP は、配列重複排除の実装に使用できる 2 つの関数、array_unique() と array_diff_key() を提供します。
array_unique() 関数は、配列から重複した値を削除し、新しい配列を返すことができます。
サンプル コード:
$arr = array("apple", "banana", "cherry", "cherry", "banana"); $arr = array_unique($arr); print_r($arr);
出力結果:
Array ( [0] => apple [1] => banana [2] => cherry )
array_unique() 関数が元の配列内の重複要素を正常に削除していることがわかります。
array_diff_key() 関数は 2 つの配列を比較し、2 つの配列間の相違点のキー名を返すことができます。
サンプル コード:
$array1 = array("a" => "red", "b" => "green", "c" => "blue"); $array2 = array("a" => "red", "b" => "green", "d" => "yellow"); $result = array_diff_key($array1, $array2); print_r($result);
出力結果:
Array ( [c] => blue )
この例では、array_diff_key() 関数は、$array2 と異なる $array1 の部分を除外し、新しい配列を返します。
2. 配列の重複排除を手動で実装する
PHP 関数を使用することに加えて、配列の重複排除を手動で実装することもできます。
for ループと if ステートメントを使用して配列を走査し、重複する要素を特定して削除します。
サンプル コード:
$arr = array(1, 2, 5, 2, 1, 6, 7, 8, 7, 9); $new_arr = array(); for ($i = 0; $i < count($arr); $i++) { if (!in_array($arr[$i], $new_arr)) { $new_arr[] = $arr[$i]; } } print_r($new_arr);
出力結果:
Array ( [0] => 1 [1] => 2 [2] => 5 [3] => 6 [4] => 7 [5] => 8 [6] => 9 )
in_array() 関数は、元の配列の要素が新しい配列にすでに存在するかどうかを判断し、存在しない場合は追加します。新しい配列に。
array_flip() 関数を使用して配列を反転し、重複するキーと値のペアを削除し、array_flip() 関数を使用して配列を反転します。
サンプル コード:
$arr = array(1, 2, 5, 2, 1, 6, 7, 8, 7, 9); $new_arr = array_flip(array_flip($arr)); print_r($new_arr);
出力結果:
Array ( [0] => 1 [1] => 2 [2] => 5 [3] => 6 [4] => 7 [5] => 8 [6] => 9 )
このメソッドはループを使用する必要はなく、array_flip() 関数を 2 回使用するだけです。
3. 概要
上記は、PHP で重複した配列を削除するためのいくつかの方法であり、特定の状況に応じて対応する方法を選択できます。 array_unique()関数とarray_diff_key()関数はPHP独自の関数で比較的効率が高く、手動で実装するには大量のコードが必要ですが、実情に応じて柔軟に調整・最適化することが可能です。
以上がPHPで重複した配列を削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。