CMS構築を目的にPHPをベースとしたWordPress、CakePHPやPEARなどオープンソースを中心に解説しています

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」となります。

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

このエントリーをはてなブックマークに追加

Comment

Comment Form

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

Monthly Archives

Search