2차 배열 수기로 만드는중인데요 info가 안나오는데 어떻게 하면 좋을까요??

2차 배열 수기로 만드는중인데요 info가 안나오는데 어떻게 하면 좋을까요??

QA

2차 배열 수기로 만드는중인데요 info가 안나오는데 어떻게 하면 좋을까요??

본문

$option_title="옵션명";

$option_list[$option_title][]="BLACK";
$option_list[$option_title][]="BLUE";
$option_list[$option_title][]="RED";

$option_info[$option_list[0][0]]['SKU']="BLACK-123";
$option_info[$option_list[0][1]]['Stock']=91;
$option_info[$option_list[0][2]]['Price']=1000;

$option_info[$option_list[1][0]]['SKU']="BLUE-123";
$option_info[$option_list[1][1]]['Stock']=91;
$option_info[$option_list[1][2]]['Price']=1000;

$option_info[$option_list[2][0]]['SKU']="RED-123";
$option_info[$option_list[2][1]]['Stock']=91;
$option_info[$option_list[2][2]]['Price']=1000;

 

title 이랑 list 는 잘나오는데요  info가 안나와서요 어떻게 하면 좋을까요 고수님들 많은 답변 부탁드립니다.

이 질문에 댓글 쓰기 :

답변 2

저걸 단순히 보면은 아래와 같은 상태라고 보시면 됩니다.

$option_title="옵션명";

$option_list['옵션명'][0]="BLACK";
$option_list['옵션명'][1]="BLUE";
$option_list['옵션명'][2]="RED";

 

여기까지는 print_r로 출력을 해보면 정상적으로 출력이 되실 껍니다.

아래를 보시면 key 라고 하는 부분이 잘못되었습니다.

위에는 0,1,2,3 이런 형식의 key 가 아니라 옵션명 이라는 문구가 key 값인데
아래에는 0,1,2,3 으로 key 를 넣었으니 정의되지 않은 배열이기때문에 오류가 납니다.

 

$option_list[0][0] 라는 부분은 위에 정의가 되어 있지 않습니다.

그래서 $option_list['옵션명'][0] 이렇게 해주시면 BLACK 이라는 값이 되겠죠

$option_info['BLACK']['SKU'] "BLACK-123";

이렇게 되는 것입니다.

아래에는 모두 잘 못 배열이 만들어졌기때문에 당연히 출력이 안되는 것이 정상입니다.

 

$option_info[$option_list[0][0]]['SKU']="BLACK-123"; // $option_info[]
$option_info[$option_list[0][1]]['Stock']=91;
$option_info[$option_list[0][2]]['Price']=1000;

$option_info[$option_list[1][0]]['SKU']="BLUE-123";
$option_info[$option_list[1][1]]['Stock']=91;
$option_info[$option_list[1][2]]['Price']=1000;

$option_info[$option_list[2][0]]['SKU']="RED-123";
$option_info[$option_list[2][1]]['Stock']=91;
$option_info[$option_list[2][2]]['Price']=1000;

$option_title="옵션명";

$option_list[$option_title][0]="BLACK";
$option_list[$option_title][1]="BLUE";
$option_list[$option_title][2]="RED";

$option_info[$option_list[$option_title][0]]['SKU']="BLACK-123";
$option_info[$option_list[$option_title][0]]['Stock']=91;
$option_info[$option_list[$option_title][0]]['Price']=1000;

$option_info[$option_list[$option_title][1]]['SKU']="BLUE-123";
$option_info[$option_list[$option_title][1]]['Stock']=91;
$option_info[$option_list[$option_title][1]]['Price']=1000;

$option_info[$option_list[$option_title][2]]['SKU']="RED-123";
$option_info[$option_list[$option_title][2]]['Stock']=91;
$option_info[$option_list[$option_title][2]]['Price']=1000;

이렇게 하였는데 잘나온것같더라구요 이게 맞을까요?? 이제 이해가 되네요

$option_info[$option_list[0][0]]['SKU']="BLACK-123";

-> $option_info[$option_list['옵션명'][0]]['SKU']="BLACK-123";


$option_info[$option_list[0][1]]['Stock']=91;

-> $option_info[$option_list['옵션명'][0]]['Stock']=91;


$option_info[$option_list[0][2]]['Price']=1000;

-> $option_info[$option_list['옵션명'][0]]['Price']=1000;

 

$option_info[$option_list[1][0]]['SKU']="BLUE-123";

-> $option_info[$option_list['옵션명'][1]]['SKU']="BLUE-123";


$option_info[$option_list[1][1]]['Stock']=91;

-> $option_info[$option_list['옵션명'][1]]['Stock']=91;


$option_info[$option_list[1][2]]['Price']=1000;

-> $option_info[$option_list['옵션명'][1]]['Price']=1000;

 

$option_info[$option_list[2][0]]['SKU']="RED-123";

-> $option_info[$option_list['옵션명'][2]]['SKU']="RED-123";


$option_info[$option_list[2][1]]['Stock']=91;

-> $option_info[$option_list['옵션명'][2]]['Stock']=91;


$option_info[$option_list[2][2]]['Price']=1000;

-> $option_info[$option_list['옵션명'][2]]['Price']=1000;

 

이렇게 바꿔서 print_r 해서 원하는 출력값이 나왔다면은

['옵션명'] 부분을 $option_title 로 변경하면 될 것 같습니다.

그렇게 해서 한번더 출력해보는 거죠

$option_title="옵션명";

$option_list[$option_title][0]="BLACK";
$option_list[$option_title][1]="BLUE";
$option_list[$option_title][2]="RED";

$option_info[$option_list[$option_title][0]]['SKU']="BLACK-123";
$option_info[$option_list[$option_title][0]]['Stock']=91;
$option_info[$option_list[$option_title][0]]['Price']=1000;

$option_info[$option_list[$option_title][1]]['SKU']="BLUE-123";
$option_info[$option_list[$option_title][1]]['Stock']=91;
$option_info[$option_list[$option_title][1]]['Price']=1000;

$option_info[$option_list[$option_title][2]]['SKU']="RED-123";
$option_info[$option_list[$option_title][2]]['Stock']=91;
$option_info[$option_list[$option_title][2]]['Price']=1000;

이렇게 하였는데 잘나온것같더라구요 이게 맞을까요?? 이제 이해가 되네요

$option_title[0]="옵션명"; // 1차배열을 그대로 담아서 2차 배열에 넣고 그다음 배열 [] 만들면 된다.

$option_list[$option_title[0]][0]="BLACK";
$option_list[$option_title[0]][1]="BLUE";
$option_list[$option_title[0]][2]="RED";

$option_info[$option_list[$option_title[0]][0]]['SKU']="BLACK-123";
$option_info[$option_list[$option_title[0]][0]]['Stock']=91;
$option_info[$option_list[$option_title[0]][0]]['Price']=1000;

$option_info[$option_list[$option_title[0]][1]]['SKU']="BLUE-123";
$option_info[$option_list[$option_title[0]][1]]['Stock']=91;
$option_info[$option_list[$option_title[0]][1]]['Price']=1000;

$option_info[$option_list[$option_title[0]][2]]['SKU']="RED-123";
$option_info[$option_list[$option_title[0]][2]]['Stock']=91;
$option_info[$option_list[$option_title[0]][2]]['Price']=1000;

이게 맞는것 같아요 여기에서 foreach 문으로 돌리려면 어떻게 하면 좋을까요??

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

회원로그인

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