[php] アルファベットや数字を順番に出力する

「アルファベット 順番に」とかで計算すると大抵ソートが引っかかると思う。
確かに並び替えはよく使うけど、ループのキーを出力する文字列の接頭に振る事も良くあると思うんだ。

foreach($array as $i => $value){
	print $i.' : '.$value.'<br />';
}

配列のインデックスは先頭が0からなのでそのまま出すと0,1,2,3…と続く。
foreachとかなら+1したりforなら$iを1にすればいいのだけど、
アルファベットの時困るし、必ず1からループさせるとも限らない。

そこでchrです。
chrはASCII文字コードを引数として該当する文字を出力する関数。

foreach($array as $i => $value){
	print chr(49+$i).' : '.$value.'<br />';
}

英数の1はASCIIコードだと49なので、49に$iを足せば1からの連番になる。

同じようにして65+$iなら大文字アルファベット、97なら小文字アルファベットになる。

foreach($array as $i => $value){
	print chr(65+$i).' : '.$value.'<br />';
}

逆にするなら減算。$iが中途半端な数字なら合計がASCIIコードと同じになるよう計算すればおk。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください