PHPのarray_unique()関数を使用し配列から重複する値を削除してみます。
array_unique()関数は、配列から重複する値を削除することができます。2つ以上の重複する値が存在する場合、最初に出現したものが維持され、他のものは削除されます。なお、返された配列は、最初の配列アイテムのキータイプを保持します。
■基本的な構文
array_unique(array, sorttype)
arrayは、重複する値を削除する配列を指定します。
sorttypeは、配列の要素/項目の比較方法を指定します。可能な値は、
SORT_STRING – アイテムを文字列として比較する。
SORT_REGULAR – アイテムを普通に比較する (タイプを変更しない)
SORT_NUMERIC – 項目を数値で比較する
SORT_LOCALE_STRING – 現在のロケールに基づいて、項目を文字列として比較する
上記となります。
■環境
・Windows10
・XAMPP 8.0.6
・PHP Version 8.0.6
■PHPのarray_unique()関数を使用し配列から重複する値を削除する
では、PHPのarray_unique()関数を使用し配列から重複する値を削除するスクリプトを書いていきます。
■コード
<html lang="ja">
<head>
<title>array_unique()関数を使用し配列から重複する値を削除する</title>
</head>
<body>
<?php
$str = array("a"=>"apple","b"=>"banana","c"=>"apple","d"=>"strawberry");
print_r(array_unique($str));
?>
</body>
</html>
今回は、strという変数を宣言し、その中でarray()関数を使用します。array()関数内の引数,パラメーターとして、キーと値(文字列)を渡します。これで配列が作成されます。
作成後、print_r()関数とarray_unique()関数を使用します。array_unique()関数の括弧内には、第1の引数,パラメーターとして、重複する値を削除する配列(str変数)を渡します。渡された情報を元に重複した値が削除され、フィルタリング(値が削除)された配列が返されます。
返された配列をprint_r()関数で出力します。
■実行
では、このスクリプトを「remove_duplicateval_array.php」という名前で保存し、実行させてみます。
実行してみると、array_unique()関数を使用したことで、str変数内の配列で重複している値が削除されました。また値とセットになっているキーも削除されたことが確認できました。そして返された配列では、最初に出現したキーと値のみが残りました。
■日本語の場合
次に配列内で重複している値(文字列)とキーが日本語の場合をやってみます。
■コード
<html lang="ja">
<head>
<title>array_unique()関数を使用し配列から重複する値を削除する</title>
</head>
<body>
<?php
$str = array("あ"=>"相内","い"=>"飯田","う"=>"宇野","え"=>"相内");
print_r(array_unique($str));
?>
</body>
</html>
■実行
では、このスクリプトを「remove_duplicateval_array_2.php」という名前で保存し、実行させてみます。
実行してみると、日本語の場合であっても、array_unique()関数を使用したことで、str変数内の配列で重複している値が削除されました。
コメント