配列の要素数を調べる
![]()
PHPでは、配列の中で現在処理をしている要素を内部ポインタというもので、指し示しています。
次に示す関数を使うと、その内部ポインタが指し示す先を変更することができますので、その結果として、添字やキーを使わずに配列を順に処理することができます。rest関数は、配列の内部ポインタを配列の先頭の要素に移動し、その内容を返します。
end関数はその反対で、内部ポインタを配列の末尾の要素に移動し、その内容を返します。
reset関数やend関数で配列の要素を取得しても、array_shift関数やarray_pop関数のようにその要素の値が削除されるということはありません。
next関数は、一つ後ろの要素に内部ポインタを移動し、その内容を返します。内部ポインタが配列の末尾を越えてしまった場合(それ以上次の応訴がない場合)には、FALSEを返します。
prev関数は、next関数とは逆で、一つ前の要素に内部ポインタを移動し、その内容を返します。内部ポインタが配列の先頭を超えた場合(前の要素がもうない場合)にはFALSEを返します。
ただし、next関数とprev関数は、内部ポインタが指し示す要素が空(数値のゼロ「0」または空白文字列「""」)の場合にもFALSEを返しますので、次の要素や前の要素がもうないのか、たまたまその要素の値が空だったのか、ということを判別することができません。
従って、空の要素が存在する可能性がある配列を順に処理したい場合には「キーと値のペアを取得する」の方法を使った方が良いでしょう。