테스트 사이트 - 개발 중인 베타 버전입니다

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

공대그녀 10년 전 조회 3,421
    $aaa = explode(",",$member[mb_1]);
    for ($i=0; $i<count($aaa); $i++) { 
        $_SESSION[name][$aaa[$i]] = $aaa[$i];
        }

 

안녕하세요. :)

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

도움 부탁 드려요.

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
10년 전

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

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

세션저장후 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]; 

이렇게 하시는게 좋겠죠.

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

공대그녀
10년 전
먼지손님 답변 감사드려요. :)
알려주신 방법을 토대로
foreach($aaa as $key=>$value)
$_SESSION[$name][$value]=$value;
이렇게 문제를 해결하였습니다.
2015년 새해 복 많이 받으세요. ㅎ

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인