ポイントは reset( $array ) と end( $array )。
<?php
$array = array( 0, 1, 2, 3, 4, 5 );
foreach( $array as $value ){
if( $value === reset( $array ) ){// reset( $array ) -> 配列のポインタを最初にセット
echo '最初の要素です。';
echo $value;
}elseif( $value === end( $array ) ){// end( $array ) -> 配列のポインタを最後にセット
echo '最後の要素です。';
echo $value;
}else{
echo '最初と最後以外の要素です。';
echo $value;
}
}
?>
ただし、配列内に同じ値がある場合は正しい結果が得られないことも。
その場合はこれ。ポイントは each( $array )。
この関数は、現在ポインタされている配列のキーと要素を返してくれます。
<?php
// 配列をセット
$array = array( 0, 1, 2, 0, 3, 5, 4, 5 );
// 配列の最初にポインタを移動
reset( $array );
// このときのキーを取得
$array_first_info = each( $array );
$array_first_key = $array_first_info['key'];
// 配列の最後にポインタを移動
end( $array );
// このときのキーを取得
$array_last_info = each( $array );
$array_last_key = $array_last_info['key'];
// ループで値を取り出す
foreach( $array as $key => $value ){
//配列の最初と最後をキーで判別
if( $key === $array_first_key ){
echo '最初の要素です。';
echo $value;
}elseif( $key === $array_last_key ){
echo '最後の要素です。';
echo $value;
}else{
echo '最初と最後以外の要素です。';
echo $value;
}
}
?>
参考にさせて頂いたのはこちらのサイトです。
【PHP】foreachで配列の最初と最後を判別する方法 – ysklog
【PHP】foreachで配列の最初と最後を判別する方法 - Java、PHP、javascriptなどのプログラミング&Wordpress、HTML、CSSなどのWeb情報ブログ(最近は雑記や仮想通貨のことなど幅広く)
