ポイントは reset( $array ) と end( $array )。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<?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 )。
この関数は、現在ポインタされている配列のキーと要素を返してくれます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
<?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; } } ?> |
参考にさせて頂いたのはこちらのサイトです。