プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
PHP、配列の先頭要素(もしくは末尾の要素)を取り出す
結論から書けば

$val = array_shift($ary);

で先頭の要素を取り出せます。
でもこれだと取り出した要素が元の配列から無くなるので

$val = reset($ary);

の方が使い勝手が良いでしょうね。
ちなみに末尾から取り出すのは

$val = array_pop($array);

と言いたいところですが、こちらもやっぱり取り出した要素が元の配列から無くなるので

$val = end($ary);

を使った方が良いと思います。

ちなみに、何でわざわざこんなことをメモっているかと言いますとね。

実は自分のところのWebサービスにしょぼいバグを埋め込んでしまったのです。
とある配列の先頭要素だけが必要だったのですが、うっかり

$val = $ary[0];

のように書いてしまいました。
これ、$aryが連想配列だと正常に機能しない……もとい、
『キー値が添字の、配列っぽい連想配列』以外では機能しないのですよね。
この指定は「先頭の要素を取得」ではなく「キーが数値0の要素を取得」な指定ですから。

PHPの配列はすべて連想配列です。一見すると配列っぽい奴も全部連想配列です。
単純にキー値が整数の連想配列が普通の配列っぽく見えるだけ。

添字指定で配列の要素にアクセスするような処理を書くと、
思わぬバグの元になりますのでご注意ください。

素直にforeachを使うか、上に書いたように関数を使って要素を取り出してくださいね。
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:● PHP  thema:システム開発 - genre:コンピュータ  Posted by ササキマコト 

  関連記事