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

Minahil Noor 2021年1月1日
PHP で配列から重複した値を削除する

この記事では、PHP で配列から重複した値を削除する方法を紹介します。

PHP で配列から重複した値を削除するには array_unique() 関数を使用する

配列から重複した値を削除するには、array_unique() 関数を利用します。関数 array_unique() は、配列から重複した値を削除するための特殊な関数です。この関数を利用するための正しい構文は以下の通りです。

array_unique($array, $flags);

関数 array_unique() は 2つのパラメータを持ちます。パラメータの詳細は以下の通りです。

パラメータの詳細は以下の通りです。 説明
$array 重複した値を削除する配列です。
$flags 配列のソートパターンを指定します。ソートフラグには 5つのタイプがあります。
SORT_REGULAR は普通に項目を比較します
SORT_NUMERIC は数値的に項目を比較します
SORT_STRING は文字列として項目を比較します
SORT_LOCALE_STRING は現在のロケールに基づいた文字列として項目を比較します。

この関数は、重複した値のない配列を返します。以下のプログラムは、array_unique() 関数を用いて PHP の配列から重複した値を削除する方法を示しています。

<?php
$array = array("Rose","Lili","Jasmine","Hibiscus","Daffodil","Daisy","Daffodil","Daisy","Lili","Jasmine","Jasmine");
echo("Array before removal: \n");
var_dump($array);
$array = array_unique($array);
echo("Array after removal: \n");
var_dump($array);
?>

出力:

Array before removal: 
array(11) {
  [0]=>
  string(4) "Rose"
  [1]=>
  string(4) "Lili"
  [2]=>
  string(7) "Jasmine"
  [3]=>
  string(8) "Hibiscus"
  [4]=>
  string(8) "Daffodil"
  [5]=>
  string(5) "Daisy"
  [6]=>
  string(8) "Daffodil"
  [7]=>
  string(5) "Daisy"
  [8]=>
  string(4) "Lili"
  [9]=>
  string(7) "Jasmine"
  [10]=>
  string(7) "Jasmine"
}
Array after removal: 
array(6) {
  [0]=>
  string(4) "Rose"
  [1]=>
  string(4) "Lili"
  [2]=>
  string(7) "Jasmine"
  [3]=>
  string(8) "Hibiscus"
  [4]=>
  string(8) "Daffodil"
  [5]=>
  string(5) "Daisy"
}

この関数はフィルタリングされた配列を返しました。

パラメータ $flags を渡すと、出力が変更されます。

<?php
$array = array("Rose","Lili","Jasmine","Hibiscus","Daffodil","Daisy","Daffodil","Daisy","Lili","Jasmine","Jasmine");
echo("Array before removal: \n");
var_dump($array);
$array = array_unique($array, SORT_NUMERIC);
echo("Array after removal: \n");
var_dump($array);
?>

出力:

Array before removal: 
array(11) {
  [0]=>
  string(4) "Rose"
  [1]=>
  string(4) "Lili"
  [2]=>
  string(7) "Jasmine"
  [3]=>
  string(8) "Hibiscus"
  [4]=>
  string(8) "Daffodil"
  [5]=>
  string(5) "Daisy"
  [6]=>
  string(8) "Daffodil"
  [7]=>
  string(5) "Daisy"
  [8]=>
  string(4) "Lili"
  [9]=>
  string(7) "Jasmine"
  [10]=>
  string(7) "Jasmine"
}
Array after removal: 
array(1) {
  [0]=>
  string(4) "Rose"
}

この関数は配列を数値的にソートしました。

関連記事 - PHP Array