« 一見ムダなようでムダでない重複記事 | トップページ | 蒼き鋼のアルペジオ »

2014.08.20

[PHP]array_uniqueを使用したときの注意

実装についてのメモメモ。
array_unique関数は、配列内の同一要素を集約してユニーク化してくれる使い方によっては便利な関数であるが、時として注意が必要。

$shopping = array("orange", "apple", "orange", "melon", "lemon", "apple", "strawberry");
こうした配列の中身は次のような状態である。
print_r($shopping);
//出力結果:
Array ( [0] => orange [1] => apple [2] => orange [3] => melon [4] => lemon [5] => apple [6] => strawberry )
これをarray_uniqueを使用して重複排除を行うとこんな感じ。
$fruits = array_unique($shopping);
print_r($fruits);
//出力結果:
Array ( [0] => orange [1] => apple [3] => melon [4] => lemon [6] => strawberry )
配列添え字に注目。 $fruits配列にarray_uniqueを使用して新規作成を行ったのであるが、元の配列の添え字を引き継ぐため、添え字には飛び番が発生する。 このため、配列を集約してからfor文で
for($i=0; $i < count($fruits); $i ++) {
  echo $fruits[$i];
}
 のような出力を行おうとすると、存在しない添え字を指定してしまってエラーは出るし、今回だとstrawberryが取得できなくなる。

そんな小ネタであった。

|

« 一見ムダなようでムダでない重複記事 | トップページ | 蒼き鋼のアルペジオ »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/2022/60182841

この記事へのトラックバック一覧です: [PHP]array_uniqueを使用したときの注意:

« 一見ムダなようでムダでない重複記事 | トップページ | 蒼き鋼のアルペジオ »