세션저장을 for문으로 하려는데 잘 안되요.

세션저장을 for문으로 하려는데 잘 안되요.

QA

세션저장을 for문으로 하려는데 잘 안되요.

답변 1

본문

    $aaa = explode(",",$member[mb_1]);
    for ($i=0; $i<count($aaa); $i++) { 
        $_SESSION[name][$aaa[$i]] = $aaa[$i];
        }

 

안녕하세요. :)

mb_1에 저장된 숫자들을 순서대로 하나씩 세션으로 만들려고 하는데, 잘 안되네요.

도움 부탁 드려요.

이 질문에 댓글 쓰기 :

답변 1

잘 안된다는게 어떻게 안되는건지요?

딱히 문제될만한 부분은 안보입니다.

세션저장후 print_r2($_SESSION['name']); 등으로 출력해보세요.

혹시 $_SESSION['name'] 저장된 내용을 목록으로 출력하려고 할 때 for문을 사용하시면 버그가 생길수도 있을겁니다.

 

이를테면

$member[mb_1] = '9,4,78,23,a,sdf'; 

이렇게 되있었다고 할 때 저장은

    [name] = Array

    (

        [9] = 9

        [4] = 4

        [78] = 78

        [23] = 23

        [a] = a

        [sdf] = sdf

    ) 

이렇게 되겠죠.

 

그런데

for($i=0; $i<count($_SESSION['name']); $i++)

print_r2($i.' : '.$_SESSION['name'][$i]);

이렇게 출력을 해보면

0 : 

1 : 

2 : 

3 : 

4 : 4

5 :  

이렇게 나올겁니다.

 

이런경우는

foreach($_SESSION['name'] as $key=>$value)

print_r2($key.' : '.$value);

이런식으로 foreach나 each를 사용하시는게 좋습니다.

[출력결과]

9 : 9

4 : 4

78 : 78

23 : 23

a : a

sdf : sdf

 

그냥 순차적으로 넣어서 for문을 사용하겠다 하는 경우라면 세션저장할 때

$_SESSION[name][$i] = $aaa[$i]; 

이렇게 하시는게 좋겠죠.

 

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 12,369
© SIRSOFT
현재 페이지 제일 처음으로