KCP 창업 지원, 수수료 국내최저 2.9% 제공 이벤트!

이중배열 질문

그누보드5
영카트5
스터디
Q & A
제작의뢰
컨텐츠몰
부가서비스
소모임
커뮤니티
부가서비스
KCP 이벤트!
이중배열 질문

QA

이중배열 질문

본문

장바구니에 각 row에 배열된 값을 다시 배열하여 검수하고 싶습니다.

 

설명에 필요한 소스만 보여드리면

 


<?php
// $s_cart_id 로 현재 장바구니 자료 쿼리
        $sql = " select a.ct_id,
                        a.it_id,
                        b.it_7
                   from {$g5['g5_shop_cart_table']} a left join {$g5['g5_shop_item_table']} b on ( a.it_id = b.it_id )
                  where a.od_id = '$s_cart_id' ";
        $sql .= " group by a.it_id ";
        $sql .= " order by a.ct_id ";
        $result = sql_query($sql);
 
for ($i=0; $row=sql_fetch_array($result); $i++)
{
$stopbuy = explode(",",$row['it_7']);
 
?>
 
   <?php if (in_array($member['mb_id'], $stopbuy)) { ?>
        <div class="cart_stopbuy">구매제한</div>
   <?php } ?>
 
<?php } ?>
 
//중략
//아래부분이 동작이 안됨
 
<?php if (in_array($member['mb_id'], $stopbuy)) { ?>
<p id="sit_ov_soldout">고객님은 이 상품의 구매권한이 없습니다.</p>
<?php } ?>
 

 

이런 상황입니다.

 

for 구문으로 각 row가 만들어져 있고

it_7은 값1,값2,값3.. 이런 식으로 구분되어 있어서

$stopbuy = explode(",",$row['it_7']);

if (in_array($member['mb_id'], $stopbuy))

 

이런식으로 각 row의 it_7 값을 구할 수 있는데요

 

코드 밑 부분은 for 구문 밖이고 각 row의 it_7 값을 다시 배열해야 하는 상황이라 동작이 되지 않습니다.

 

예를 들어 장바구니에

 

상품 1의 it_7 = 배, 사과, 감

상품 2의 it_7 = 수박

 

이 담겨 있을 때

 

코드 밑 부분에서

 

배, 사과, 감, 수박을 나열해서 $member['mb_id']와 비교해야 하는 상황인거에요 ㅠㅠ

어떻게 하면 좋을까요?

이 글을 내 페이스북 계정으로 보내기 이 글을 내 트위터 계정으로 보내기

이 질문에 댓글 쓰기 :

답변 2

채택됨

해춘s님의 답변

각 row의 값이 다시 필요한 상황인것 같습니다.

for문 안에서 stopbuy 배열을 합쳐두었다가,

for문 밖에서 in_array로 비교하는 방법이 어떨까 합니다.

배열이 아니더라도, 각 row의 'it_7'을 string으로 합쳐두었다가

사용해도 되는데,, 배열이 더 간단하네요.

 


$result[0]['it_7'] = "배, 사과, 감";
$result[1]['it_7'] = "수박";
$result[2]['it_7'] = "수박, 사과";
 
$member['mb_id'] = "수박";
 
$all_stopbuy = array();
for ($i=0; $i < sizeof($result); $i++) {
    $row = $result[$i];
    $stopbuy = explode(",",$row['it_7']);
    
    if (in_array($member['mb_id'], $stopbuy)) {
        echo "Purchase restrictions error<br>";
    }
    
    $all_stopbuy = array_merge($all_stopbuy, $stopbuy);
    
}
 
if (in_array($member['mb_id'], $all_stopbuy)) {
    echo "Purchase rights error <br>";
}
주소복사
채택됨
답변의 댓글

검은냥냥이님의 답변

stopbuy를 포문 위로 빼서 해보세용

주소복사
답변의 댓글
답변을 작성하시기 전에 로그인 해주세요.
전체 92,577 | RSS
고마운 분의 도움으로 질문을 해결하셨다면, 채택을 눌러서 감사의 마음을 전하세요.
어떻게 질문해야 할지 모른다면 질문하는 방법을 읽어 보신후 질문해 보세요.
QA 내용 검색

회원로그인

(주)에스아이알소프트 (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 대표메일:admin@sir.kr
사업자등록번호:217-81-36347 대표:홍석명 통신판매업신고번호:2014-서울강남-02098호 개인정보보호책임자:이총

© SIRSOFT