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

get_item_options 함수에서요 채택완료

프로그래머7 9년 전 조회 7,348

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개

채택된 답변
+20 포인트
그림자밟기

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개

프로그래머7
9년 전
예 여기에서 질문이..

왜 $options[$k]의 배열에 $opt_id[$k] 값을 추가하는지요?
$options[$k]의 배열에 중복없이 옵션을 넣는 이유가 뭔가요?
그림자밟기
9년 전
영카트는 잘 사용안해서....원본소스 함 열어봤네요.
해당 소스 아래쪽에 옵션선택목록 만들기가 있는데요.

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;
요거 때문으로 보입니다.
프로그래머7
9년 전
감사합니다^^

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

잉끼s
9년 전


                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개

프로그래머7
9년 전
제가 궁금한것은^^;
왜 아래를 하는지궁금한것 입니다^^;
$options[$k] 배열안에 해당 값이 없다면 $options[$k]에 $opt_id[$k] 값을 추가한다.

왜 $options[$k]에 $opt_id[$k] 값을 추가해야 하는지..

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

9년 전
id변수가있고 옵션배열안에 변수가없다면<br />
옵션배열은 아이디값과 같다<br />
단순한거같은데 ㅡ.ㅡ
로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

프로그래머7
9년 전
목적이 이해가 ^^
프로그래머7
9년 전
시간내어주셔셔 감사합니다^^

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

9년 전
위에 주석처리 되어있네여<br />
옵션 배열처리<br />
옵션을 배열에 담고있네여
로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

프로그래머7
9년 전
예...그건 알고요^^;

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

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

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

로그인