php 중복값 질문드립니다.
본문
입력값
php
결과값
print_r2값
<tr><td>
<select name="wr_12[]">
<option value="딸기">딸기</option>
<option value="감자">감자</option>
<option value="레몬">레몬</option>
<option value="수박">수박</option>
</select>
<input value="wr_21[]" value="">수량</input>
</td></tr>
<tr><td>
<select name="wr_12[]">
<option value="딸기">딸기</option>
<option value="감자">감자</option>
<option value="레몬">레몬</option>
<option value="수박">수박</option>
</select>
<input value="wr_21[]" value="">수량</input>
</td></tr>
php
$sql = "
select
group_concat(wr_12 separator '||') wr_12a,
group_concat(wr_21 separator '||') wr_21b
from {$write_table}
where wr_29 between '{$stx1}' and '{$stx2}'
";
$result = sql_query($sql, true);
while ($row = sql_fetch_array($result)) {
$list_namea = explode('||',$row['wr_12a']);
$list_nameb = explode('||',$row['wr_21b']);
$result_array = array();
foreach ($list_namea as $key=>$val)
{
$result_array[$key] = array($list_namea[$key],$list_nameb[$key]);
}
for ($i=0; $i<count($result_array); $i++) { ?>
<tr>
<td><?php echo $result_array[$i][0]; ?></td>
<td><?php echo $result_array[$i][1]; ?></td>
</tr>
<?php } } ?>
결과값
print_r2값
Array
(
[0] => Array
(
[0] => 딸기
[1] => 4
)
[1] => Array
(
[0] => 딸기
[1] => 4
)
[2] => Array
(
[0] => 멜론
[1] => 4
)
[3] => Array
(
[0] => 멜론
[1] => 10
)
[4] => Array
(
[0] => 딸기
[1] => 4
)
[5] => Array
(
[0] => 수박
[1] => 1
)
[6] => Array
(
[0] => 감자
[1] => 1
)
)
제품 개수
딸기 4
딸기 4
멜론 4
멜론 10
딸기 4
수박 1
감자 1
중복된 결과값은 개수를 곱해서 한개씩만 뽑고 싶습니다.
원하는 결과값
딸기 12
멜론 14
수박 1
감자 1
이것저것 막 해보고 있는데... 원하는 값이 나오질 않네요 ㅠㅠ
!-->!-->!-->답변 3
<?php
$sql = "
select
group_concat(wr_12 separator '||') wr_12a,
group_concat(wr_21 separator '||') wr_21b
from {$write_table}
where wr_29 between '{$stx1}' and '{$stx2}'
";
$result = sql_query($sql, true);
while ($row = sql_fetch_array($result)) {
$list_namea = explode('||',$row['wr_12a']);
$list_nameb = explode('||',$row['wr_21b']);
$result_array = array();
foreach ($list_namea as $key=>$val)
{
$result_array[$list_namea[$key]] += $list_nameb[$key];
}
foreach ($result_array as $key=>$val) { ?>
<tr>
<td><?php echo $key; ?></td>
<td><?php echo $val; ?></td>
</tr>
<?php } } ?>
음.. array_search 혹은 in_array로 하면 되지 않을까요?
<?php
$arr = array(
array
(
'딸기',
4
),
array
(
'딸기',
4
),
array
(
'멜론',
4
),
array
(
'멜론',
10
),
array
(
'딸기',
4
),
array
(
'수박',
1
),
array
(
'감자',
1
)
);
print_r($arr);
$result = array();
array_walk($arr, function($value) use (&$result) {
$k = $value[0];
$v = $value[1];
if (isset($result[$k]) == false) {
$result[$k] = 0;
}
$result[$k] += $v;
});
print_r($result);
?>
답변을 작성하시기 전에 로그인 해주세요.