배열 값이 같을 경우

배열 값이 같을 경우

QA

배열 값이 같을 경우

답변 2

본문

안녕하세요.
$prdArr 배열변수에 아래와 같은 배열이 존재 하는데
prd_group 의 값이 같을경우 같은 prd_group의 prd_cnt 수 를 합치고 배열을 하나로 
만들수있는 방법이 있을까요???

ARRAY
(
    [prd_type] => test
    [prd_data] => ARRAY
        (
            [1] => ARRAY
                (
                    [prd_group] => A
                    [prd_cnt] => 10
                )
            [2] => ARRAY
                (
                    [prd_group] => A
                    [prd_cnt] => 5
                )
            [3] => ARRAY
                (
                    [prd_group] => B
                    [prd_cnt] => 10
                )
            [4] => ARRAY
                (
                    [prd_group] => C
                    [prd_cnt] => 10
                )
            [5] => ARRAY
                (
                    [prd_group] => C
                    [prd_cnt] => 50
                )
        )
)

#원하는 결과물입니다.
[1] => ARRAY(
    [prd_group] => A
    [prd_cnt] => 15
)

[2] => ARRAY(
    [prd_group] => B
    [prd_cnt] => 10
)

[3] => ARRAY(
    [prd_group] => C
    [prd_cnt] => 60
)

감사합니다.

이 질문에 댓글 쓰기 :

답변 2


$prd_data = [ 
                ["prd_group" => "A", "prd_cnt" => "10"],
                ["prd_group" => "A", "prd_cnt" => "5"],
                ["prd_group" => "B", "prd_cnt" => "10"],
                ["prd_group" => "C", "prd_cnt" => "10"],
                ["prd_group" => "C", "prd_cnt" => "50"]
            ];
$result = [];
foreach($prd_data as $v){
    $key = $v["prd_group"];
    if(isset($result[$key]))
        $result[$key]["prd_cnt"] += $v["prd_cnt"];
    else
        $result[$key] = $v;
}
$result = array_values($result);
print_r($result);
답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 71
© SIRSOFT
현재 페이지 제일 처음으로