티스토리 뷰


코드가 방대해지기 시작하면, 배열이 커지기 마련이고, 특히나 php의 경우 사기언어(?) 이므로...

최초 의도했던 용도와는 다르게 배열의 차수가 달라지기도 합니다.

이를테면 1차원 배열로 사용을 하는게 목적이었으나... 급히 2차원 배열로 변경한다든가..
 (이는 목적에 따라 최초1차원 배열로 사용을 하였지만, 요구사항에 따라 2차원 배열로 행해지는 경우)

그렇게 되면 나중에 특정 배열 변수를 놓고 값을 체크하는게 난감한 경우가 있습니다.

보통의 1차원 배열이나, 그 이상의 배열의 경우 목적이 분명하고 차원이 분명하다면,
for문 돌려서 echo로 충분히 배열 내용을 알수 있다. 하지만 배열의 키(index)값이 default(0부터 증가하는 숫자)가 아니라면,

정확히 그 배열에 어떤 키와 값이 있는지 echo로 일일이 찍을 수도 없는 노릇입니다.

실제로 다른 사람이 짜놓은 코드에서 배열 값 뒤지다가 난해한적이 있었습니다. (내 부족함을 탓해야지..)


하지만 print_r () function을 사용하면 걱정 끝, 고민 해결!!

print_r() 함수를 소개할때 자주 등장하는 아래와 같은 예제가 있습니다. (서론이 조금 길었네요)

/*  1 번 예제 */
$buf = array ('a' => 'apple', 'b' => 'banana', 'c' => array ('key1'=>'x', 'key2'=>'y', 'key3'=>'z'));

/*  2 번 예제 */
$buf['a'] = "apple";
$buf['b'] = "banana";
$buf['c']['key1'] = "x";
$buf['c']['key2'] = "y";
$buf['c']['key3'] = "z";

print_r($buf);

/* 보통의 경우 아래와 같이 구현.. */
for ($i=0; count($buf); $i++)
{
     echo $buf[$i] . "\n";
}


print_r($buf)를 찍는 경우 내부 구조가 모두 출력됩니다.
/* 결과 */
Array
(
    [a] => apple
    [b] => banana
    [c] => Array
        (
            [key1] => x
            [key2] => y
            [key3] => z
        )
)


우린 참 좋은 세상에 태어난지도 모른다는 생각이 들게 만드는 함수지요..


'개발 > PHP' 카테고리의 다른 글

[php] implode, explode  (0) 2011.11.28
[php] array_fill() - 배열 초기화  (0) 2011.11.27
[php] Cannot use a scalar value as an array  (0) 2011.11.08
[php] 간단하게 PID 값 알아내기  (0) 2011.10.10
[php] hash_hmac(), hash_hmac_file()  (0) 2011.10.10
댓글
댓글쓰기 폼