WEB/システム/IT技術ブログ

PHP関数「array_unique」使用時の注意

PHPで配列の重複情報を消去したい、ユニークなデータを抽出したいという場面に遭遇したので、array_unique()関数を使ってみました。
例えば、以下のように「a」「b」「c」の3種類のデータが入った配列があった場合に、array_unique()を使うと、8つのデータを3つに絞ってくれます。

$a = array("a","c","a","b","b","a","b","c");
echo sizeof($a);
$a = array_unique($a);
echo sizeof($a);

ただし、注意する点は、重複したデータを削除しただけであって、キーは詰められていないということです。処理後の配列を詳しく見てみると。

$a = array_unique($a);
print_r($a);

結果は「Array ( [0] => a [1] => c [3] => b ) 」となります。つまり普段のように以下のように処理してしまうのはダメって事です。

$a = array_unique($a);
for($i = 0; $i < sizeof($a); $i++){
	echo $a[$i];
}

出力結果は「ac」となります。

「こんな便利な関数があったのか。楽にクリアできそう。」
と思っていたらこんな落とし穴が、、、また考え直そう。

B!

Comment

コメントはありません

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

Monthly Archives