ord(); — string에서 첫번째 문자의 아스키 값을 반환합니다.
chr(); — ascii에 지정한 문자를 가지는 한 글자의 문자열을 반환합니다.
ascii 코드로 되어 있는 문자들은 해당 문자를 ascii에 해당하는 숫자로 바꿔서 순차적으로 1씩 더해서 출력하면, 결론적으로 알파벳을 차례대로 출력 할 수 있다.
하지만, php에는 더 간단한 방법이 있다.
아래 소스를 보자
echo "1_for : ";
for($a = ord('a'); $a <= ord('z'); $a++) echo chr($a).", ";
echo "<br>2_for : ";
for( $i=1, $a='a'; $i <=26; $i++,$a++ ) echo $a.", ";
echo "<br>3_for : ";
for( $a='A'; $a != 'AA'; $a++ ) echo $a.", ";
echo "<br>4_for : ";
for( $i=1, $a='a'; $i <=100; $i++,$a++ ) echo $a.", ";
첫번째 for문은 다들 아는 방식일 것이다.
그럼 2번째 for문은 어떻게 된걸까? 일단 결과를 공개 하자면,
1_for : a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, 2_for : a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, 3_for : A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 4_for : a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd, be, bf, bg, bh, bi, bj, bk, bl, bm, bn, bo, bp, bq, br, bs, bt, bu, bv, bw, bx, by, bz, ca, cb, cc, cd, ce, cf, cg, ch, ci, cj, ck, cl, cm, cn, co, cp, cq, cr, cs, ct, cu, cv,
위와 같은 결과가 나온다. 변수에 'a'를 집어넣고 해당 변수를 +1을 해주면 알아서 b가 나오게 된다. 거기다가, 이건 z 이상 출력 되면 다음엔 aa, ab, ac, 순서로 나오게 된다.
마치 알파벳으로 26진법을 사용하듯이...
무튼, php에는 이런것도 되는구나.... 라는 발견이었다.
//-----------추가사항 2014.07.03
해당 기능은 엑셀의 셀번호와 같은 방식으로 증가하기 때문에 PHPExcel에서 사용하면 편하다.