강의 컨설팅 트레이닝 무료진단 무료책자 마케팅편지 마케팅정보공유 다이어리 서비스제휴 고객센터

foreach
작성자 : 13 김영철
등록날짜 : 2009.01.13 15:14
1,214

제목 : PHP 내공올리기 강좌 1 : foreach 사용법
글쓴넘 : 위경섭
저작권 : 위경섭
 
이 글은 글쓴넘과 저작권을 표시하여 배포 가능함다 !!!
--
 
foreach 사용법
 
우선 foreach 문법의 prototype 을 보자
 
1. foreach (array_expression as $value) statement

첫번째 사용법은 배열의 첨자를 무시하고 값만을 사용하고 싶을때 사용한다.
 
이런배열이 있다고 가정해 보자
 
$my_arr[0] = "apple";
$my_arr[5] = "orange";
$my_arr[15] = "pineapple";
 
이 배열을 출력하는 일반적인 for 문을 구성해보자.
 
for($i=0;$i<=15;$i++)
{
    if( $my_arr[$i] != "") echo $my_arr[$i];
}
 
세개의 내용을 표시하기위해 15번의 루프를 돈다. 이걸 foreach 로 바꿔보자.
 
foreach($my_arr as $fruit)
{
    echo $fruit;
}
 
이 문장은 세개의 과일을 표시하기위해 정확히 세번만 돈다..
 
2. foreach (array_expression as $key => $value) statement
 
이제 좀더 파워풀한 두번째 사용법을 보자.
 
위의 예를 그대로 써서...
 
foreach($my_arr as $idx => $fruit)
{
    echo "INDEX : $idx, fruit : $fruit";
}
 
두번째의 경우는 PHP에 존재하는(다른언어에도 있을랑가 모르겠지만...) 문자열첨자르 사용할 경우 아주 유용하다.
 
// 설정값 저장용 배열
$my_cnf["version"] = "1.5";
$my_cnf["appname"] = "My Application";
$my_cnf["Author"] = "위경섭";
 
foreach($my_cnf as $keyName => $value)
{
    echo "$keyName = $value";
}
 
이제 아주 유용한 실전 예제를 한번 만들어보자..
 
문)
내가 호스팅받는 계정이 보안상의 이유로 PHP register global 을 off 해놨다.
그래서 내가만든게시판의 action 파일에 있는 $subject 등을 $_POST["subject"] 로 바꿔서
써야한다. 근데 이게 일이 넘 많다!.. 이걸 일일이 안바꾸고 해결할 방법이 있겠는가 ?
 
답)
일단 $_POST 의 특성을 보자...
 
$_POST 는 웹페이지에서 <form method=post ...> 했을때 폼태그 내에있는 양식(input,select 등등) 의 값이 넘어오는 배열이다. PHP의 register global 이 on 되어있으면 PHP가 자동으로 해당변수의 이름으로 매핑해준다. 하지만 off 이면 $_POST["name속성명"] 으로 참조해야한다.
 
그다음 PHP의 참조변수 기능을보자.
 
$fruit = "apple";
$apple = "이것은 사과";
echo $$fruit; // "이것은 사과" 를 출력함..
 
변수명을 문자열로 사용할 수 있다..즉
$apple === $$fruit 인 것이다..
 
이제 $_POST 배열안의 각변수들을 실제 변수로 만들어보자
 
foreach($_POST as $key => $value)
{
    $$key = $value;
}
 
끝났다...이제 register global=off 상태에서도 내가 폼을 통해넘긴 변수를 register global on 일때 처럼 사용할 수 있다.
 
$$key = $value;
 
$key 에는 $_POST 배열의 첨자가 온다.
 
$_POST["subject"] = "나의 게시물";
 
여기서 "subject" 가 $key 에 "나의 게시물" 이 $value 에 들어간다.
 
위에서 설명한 변수참조 기능에서
$$key -->  $"subject" 가 되고($subject 변수가 생성된다) 여기에 $value를 넣으므로
 
$subject = $value;
 
이런 결과가 되어
 
$_POST["subject"] = "나의 게시물";
 
이 문장에서 아래의 문장이 실행된다.
 
$subject = "나의 게시물";
 
이렇게 해서 폼에서 넘긴 name=subject 폼이 $subject 로 사용가능하게 된다.

"쇼핑몰·홈페이지·오픈마켓
블로그·페이스북·이메일 등의 각종 마케팅 글쓰기,
각종 광고, 영업, 판매, 제안서, 전단지
반응율 3배×10배 이상 높이는 마법의 8단계 공식"
자세히보기

Comments

마케팅
특별 마케팅자료
다운로드 마케팅자료
창업,경영
기획,카피,상품전략
동기부여,성취