이중배열 질문

이중배열 질문

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

각 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를 포문 위로 빼서 해보세용

답변을 작성하시기 전에 로그인 해주세요.
전체 1,267
QA 내용 검색

회원로그인

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