채택완료

get_item_options 함수에서요

2016-09-30 (금) 13:11:19 7,924

lib/shop.lib.php파일안의 

====================

get_item_options 함수내용중에서 질문드려요 

빨간색 부분 뭐하는건지...뭐하고 있는 내용인가요? ^^

        // 옵션항목 배열에 저장

        for($i=0; $row=sql_fetch_array($result); $i++) {

            $opt_id = explode(chr(30), $row['io_id']);

            for($k=0; $k<$subj_count; $k++) {

                if(!is_array($options[$k])) {

                    $options[$k] = array();

                }

                if($opt_id[$k] && !in_array($opt_id[$k], $options[$k])){

                    $options[$k][] = $opt_id[$k];

                }    

            }

        }


답변 4개 / 댓글 8개

채택된 답변
+20 포인트
2016-09-30 (금) 13:52:56

if($opt_id[$k] && !in_array($opt_id[$k], $options[$k])){ 

    $options[$k][] = $opt_id[$k]; 

}

$opt_id[$k]의 값이 있으며,

$opt_id[$k]의 값이 $options[$k] 배열에 없다면

$options[$k]의 배열에 $opt_id[$k] 값을 추가하라.

$options[$k]의 배열에 중복없이 옵션을 넣는것 같네요. 

답변에 대한 댓글 3개

2016-09-30 (금) 13:57:56
예 여기에서 질문이..

왜 $options[$k]의 배열에 $opt_id[$k] 값을 추가하는지요?
$options[$k]의 배열에 중복없이 옵션을 넣는 이유가 뭔가요?
2016-09-30 (금) 14:19:23
영카트는 잘 사용안해서....원본소스 함 열어봤네요.
해당 소스 아래쪽에 옵션선택목록 만들기가 있는데요.

for($k=0; $k<$opt_count; $k++) {
$opt_val = $opt[$k];
if(strlen($opt_val)) {
$select .= '<option value="'.$opt_val.'">'.$opt_val.'</option>'.PHP_EOL;
}
}
여기서 옵션의 값이 똑같은게 나오는걸 방지하기 위해서로 보이네요.
$select .= '<option value="'.$opt_val.'">'.$opt_val.'</option>'.PHP_EOL;
요거 때문으로 보입니다.
2016-10-01 (토) 11:22:51
감사합니다^^


                if(!is_array($options[$k])) {

                    $options[$k] = array();

                }

$options[$k] 이 배열로 선언되어 있지 않다면 배열로 선언한다.


                if($opt_id[$k] && !in_array($opt_id[$k], $options[$k])){

                    $options[$k][] = $opt_id[$k];

                }   

$opt_id[$k] 값이 존재하고 $options[$k] 배열안에 해당 값이 없다면 $options[$k]에 $opt_id[$k] 값을 추가한다.  

is_array() 와 in_array() 에 대해서 공부하시면 될겁니다. 

답변에 대한 댓글 1개

2016-09-30 (금) 18:23:32
제가 궁금한것은^^;
왜 아래를 하는지궁금한것 입니다^^;
$options[$k] 배열안에 해당 값이 없다면 $options[$k]에 $opt_id[$k] 값을 추가한다.

왜 $options[$k]에 $opt_id[$k] 값을 추가해야 하는지..
id변수가있고 옵션배열안에 변수가없다면
옵션배열은 아이디값과 같다
단순한거같은데 ㅡ.ㅡ

답변에 대한 댓글 2개

2016-09-30 (금) 18:24:57
목적이 이해가 ^^
2016-10-01 (토) 11:23:11
시간내어주셔셔 감사합니다^^
위에 주석처리 되어있네여
옵션 배열처리
옵션을 배열에 담고있네여

답변에 대한 댓글 2개

2016-09-30 (금) 13:42:36
예...그건 알고요^^;

더 정확히는 아래부분이 뭐하는건지 -_-; ^^
if($opt_id[$k] && !in_array($opt_id[$k], $options[$k])){
$options[$k][] = $opt_id[$k];
}
프로7님 실몽ㅋㅋ

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