2차 배열을 합치는 foreach 문 잘다루는 분 계실까요???

2차 배열을 합치는 foreach 문 잘다루는 분 계실까요???

QA

2차 배열을 합치는 foreach 문 잘다루는 분 계실까요???

본문

$arr_dom2 ["옵션명"][]='블랙 / M';
        $arr_dom2 ["옵션명"][]='블랙 / L';
        $arr_dom2 ["옵션명"][]='블랙 / XL';
        $arr_dom2 ["옵션명"][]='화이트 / M';
        $arr_dom2 ["옵션명"][]='화이트 / L';
        $arr_dom2 ["옵션명"][]='화이트 / XL';

        print_m($arr_dom2,"BBBBBBB");


        $arr_dom3 ['SKU']="98252";
        $arr_dom3 ['Stock']=999;
        $arr_dom3 ['Price']=125000;
        $arr_dom3 ['Currency']=10;
        $arr_dom3 ['Image']= array("img src='naver'");
        $arr_dom3 ['ImageSet']=array("img src='naver'","img src='kakao'","img src='google'");

        print_m($arr_dom3,"CCCCCCCC");
        
        $arr_dom4 = array();
        foreach($arr_dom2 as $key => $value) {
            $arr_dom3[] = $key;
        }   


        print_m($arr_dom4,"DDDDDDDD");

 

 

원하는건 옵션만 담겨져 있는 배열값에   해당 배열에 담겨져있는 info를 출력하고 싶은데요

 

잘안되는데 고수님들 도와주세요~~

 

결과는 

3731937798_1656510529.3148.png

 

이렇게 나오면 되거든요 배열만 마스터하면 회사 다니기 펼할것같은데 에구 대가리가 안돌아가네요

이 질문에 댓글 쓰기 :

답변 1


<?php
$info = array();
foreach($arr_dom2['옵션명'] as $key => $value) {
    $tmp = array();
    foreach($arr_dom3 as $k => $v) {
        $tmp[$k] = $v;
    }
    $info[$value] = $tmp;
}
print_r2($info);

 

와 같이 한번 해보세요

직접실행해본건 아니라서 조금 안맞을수도있긴할텐데, 개념적으로 맞을겁니다.

$option_title[]="옵션명";

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

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

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

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


수기로 입력해보왔는데요

info  배열 0 번째에 option_title을 넣고 싶은데요 어떻게 하면 좋을까요??

원하시는게 100% 이해가 잘 안되게 질문을 하셔서.. 답을 드리기가 좀 애매한데요

$info 배열 0번째에 $option_title을 넣겠다...
배열의 요소의 성질이 상위의 것과 맞아야 데이타를 넣을수있습니다.
배열이 아닌 객체로 넣는다면 모를까.

위의 제가 답을 드린 구조를 좀 변형하면



<?php
$info = array();
$info[0] = $option_title;
$idx = 1;
foreach($arr_dom2['옵션명'] as $key => $value) {
    $tmp = array();
    foreach($arr_dom3 as $k => $v) {
        $tmp[$k] = $v;
    }
    $info[$idx][$value] = $tmp;
    $idx++;
}
print_r2($info);


이렇게 해야할것 같아보이는데
원하시는게 이런게 아니라면 좀더 구체적인 질문을 명료하게 다시해보세요
원시데이타와 가공데이타 둘다 샘플을 보여주시는게 더 정확하겠죠


$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 문으로 풀어보아야 할 것 같은데 어떻게 하면 좋을까요??

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

회원로그인

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