채택완료
php로 뽑은 2차원 배열에서 날짜 기준으로 합산데이터를 뽑고 싶습니다
날짜와 두 상품금액이 담긴 2차원 배열을 만들었습니다.
(게시판1과 다른게시판2 if문을 통해 신규 배열을 만들었습니다.)
print_r($aa) 를 출력하면
Copy
Array (
[0] => Array ( [date] => 2022-03-23 [aa] => 10000 [bb] => 1000 )
[1] => Array ( [date] => 2022-03-24 [aa] => 10000 [bb] => 1000 )
[2] => Array ( [date] => 2022-03-24 [aa] => 10000 [bb] => 1000 )
[3] => Array ( [date] => 2022-03-25 [aa] => 10000 [bb] => 1000 )
...
)
위에 같이 결과를 만들었습니다. ( aa와 bb의 값은 예를 들었습니다. )
위의 $aa 뽑아낸 뒤 에 아래와 같이 변형을 하고 싶습니다.
날짜별로 상품들의 합산을 재배열해서 $bb로 만들고 싶습니다.
제가 결과를 내고싶은 값은 아래와 같습니다.
Copy
Array (
[0] => Array ( [date] => 2022-03-23 [aa] => 10000 [bb] => 1000 )
[1] => Array ( [date] => 2022-03-24 [aa] => 20000 [bb] => 2000 )
[2] => Array ( [date] => 2022-03-25 [aa] => 10000 [bb] => 1000 )
...
)
날짜별 합산 을 만들고 싶은데 어떻게 짜야할까요?
제가 배열에 좀약하고 이해도가 약해서 부탁드립니다.
|
답변 1개 / 댓글 4개
채택된 답변
+20 포인트
2022-03-25 (금) 11:36:44
$arr = ~~; //데이터배열
$result = array();
foreach($arr => $row) {
if ($result[$row['date']]) {
$result[$row['date']]['aa'] += $row['aa'];
$result[$row['date']]['bb'] += $row['bb'];
} else {
$result[$row['date']] = array();
$result[$row['date']]['aa'] = $row['aa'];
$result[$row['date']]['bb'] = $row['bb'];
}
}
답변에 대한 댓글 4개
2022-03-25 (금) 13:42:11
아 제가 오타났네요 소스를 실행해본게 아니라서 ㅠㅠ
foreach ($arr as $row)
가 맞는거고, 위에 배열 선언하실떄 문법 잘 맞추셔야해요 잠시만요
foreach ($arr as $row)
가 맞는거고, 위에 배열 선언하실떄 문법 잘 맞추셔야해요 잠시만요
2022-03-25 (금) 13:47:25
소스를 다시 좀 정리해봤어요 참고하세요
[code]
$arr = array(
array('date' => '2022-03-24', 'a' => 10, 'b' => 20)
, array('date' => '2022-03-24', 'a' => 10, 'b' => 20)
, array('date' => '2022-03-25', 'a' => 111, 'b' => 222)
, array('date' => '2022-03-26', 'a' => 1111, 'b' => 2222)
, array('date' => '2022-03-26', 'a' => 1111, 'b' => 2222)
);
print_r($arr);
$result = array();
foreach($arr as $row) {
if (isset($result[$row['date']])) {
$result[$row['date']]['a'] += $row['a'];
$result[$row['date']]['b'] += $row['b'];
} else {
$result[$row['date']] = array();
$result[$row['date']]['a'] = $row['a'];
$result[$row['date']]['b'] = $row['b'];
}
}
print_r($result);
[/code]
[code]
$arr = array(
array('date' => '2022-03-24', 'a' => 10, 'b' => 20)
, array('date' => '2022-03-24', 'a' => 10, 'b' => 20)
, array('date' => '2022-03-25', 'a' => 111, 'b' => 222)
, array('date' => '2022-03-26', 'a' => 1111, 'b' => 2222)
, array('date' => '2022-03-26', 'a' => 1111, 'b' => 2222)
);
print_r($arr);
$result = array();
foreach($arr as $row) {
if (isset($result[$row['date']])) {
$result[$row['date']]['a'] += $row['a'];
$result[$row['date']]['b'] += $row['b'];
} else {
$result[$row['date']] = array();
$result[$row['date']]['a'] = $row['a'];
$result[$row['date']]['b'] = $row['b'];
}
}
print_r($result);
[/code]
답변을 작성하려면 로그인이 필요합니다.