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,336 | RSS
고마운 분의 도움으로 질문을 해결하셨다면, 채택을 눌러서 감사의 마음을 전하세요.
어떻게 질문해야 할지 모른다면 질문하는 방법을 읽어 보신후 질문해 보세요.
QA 내용 검색

회원로그인

진행중 포인트경매

  1. 참여39 회 시작20.10.16 07:30 종료20.10.22 19:41
  2. 참여18 회 시작20.10.15 12:15 종료20.10.22 12:15
  3. 참여2 회 시작20.10.14 12:40 종료20.10.21 12:40
  4. 참여2 회 시작20.10.14 12:33 종료20.10.21 12:33

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

© SIRSOFT