配列にはインデックスを指定して特定のデータを取り出したり、foreach文で全データを取り出したりできます。一方、配列の「内部ポインタ」を管理すると、配列内でカーソルを移動する感覚でその位置のデータを取り出すことができます。
配列の内部ポインタの移動には、以下の4つの関数を使います。これらの関数を呼び出すと、ポインタを目的の位置に移動させるとともに、その位置の配列データを返り値として取得できます。
関数名 | 機能 |
reset()関数 | ポインタを先頭に移動します |
netx()関数 | ポインタを1つ次に進めます |
prev()関数 | ポインタを1つ前に戻します |
end()関数 | ポインタを最後に移動します |
reset()関数につづけてprev()関数を実行した場合、あるいはend()関数に続けてnext()関数を実行した場合、該当するデータは存在しないので、各関数はFalseを返します。これを確認することで、配列の端を検出できます。
<?php header("Content-type: text/html; charset=utf-8"); $team = array("ブラジル","イタリア","アルゼンチン","フランス", "イングランド","オランダ","スペイン","ポルトガル"); $current = reset($team); echo "先頭のデータは{$current}<br>"; $current = next($team); echo "2番目のデータは{$current}<br>"; $current = next($team); echo "3番目のデータは{$current}<br>"; $current = next($team); echo "最後のデータは{$current}<br>"; $current = prev($team); echo "後ろから2番目のデータは{$current}<br><br>"; $current = reset($team); while($current){ echo $current . "<br>"; $current = next($team); } ?>