【PHP】配列の最初と最後を判別

PHP

ポイントは 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情報ブログ(最近は雑記や仮想通貨のことなど幅広く)
タイトルとURLをコピーしました