PHP | foreach()でインデックス番号・連番を取得する方法

PHP,PHP ループ

PHP

PHPのforeach()を使って配列やファイル情報などを繰り返す際に、インデックス番号を取得する方法の紹介しています。

配列のインデックス番号を取得する

値のみの配列の場合、以下のようにしてインデックス番号を取得する事が可能です。

$array = ['apple', 'pine', 'banana'];

foreach ($array as $i => $nalue) {
	echo $i;
}
//012

連想配列で連番を取得する

連想配列の場合は同じ方法では値にあるキー名を取得します。

$array = ['a' => 'apple', 'b' => 'pine', 'c' => 'banana'];

foreach ($array as $key => $nalue) {
	echo $i;
}
//abc

連番処理などの実装が目的で、キー名ではなく繰り返した回数による連番を取得したい場合は、単純な方法ですが以下のように記述する事で実装可能です。

$array = ['a' => 'apple', 'b' => 'pine', 'c' => 'banana'];

$i = 0;
foreach ($array as $key => $nalue) {
	echo $i;
	$i++;
}
//012

ファイル一覧処理で連番を取得する

foreach()とglob()を利用して特定のディレクトリ内にある.txtファイル一覧をforeach()で繰り返す場合、以下の様に記述してインデックス番号(この場合、繰り返し回数による連番)を取得する事が可能です。

対象のディレクトリ内に10個の.txtファイルが存在した場合、以下のような結果を返します。

foreach (glob('dir/*.txt') as $i => $file) {
	echo $i;
}
//0123456789

PHP,PHP ループ

Posted by Yousuke.U