테스트 사이트 - 개발 중인 베타 버전입니다

php 중복값 질문드립니다. 채택완료

입력값

<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']);</p>

<p>        $list_nameb = explode('||',$row['wr_21b']);</p>

<p>        $result_array = array();

        foreach ($list_namea as $key=>$val)

        {

            $result_array[$key] = array($list_namea[$key],$list_nameb[$key]);

        }</p>

<p>        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

        )</p>

<p>    [1] => Array

        (

            [0] => 딸기

            [1] => 4

        )</p>

<p>    [2] => Array

        (

            [0] => 멜론

            [1] => 4

        )</p>

<p>    [3] => Array

        (

            [0] => 멜론

            [1] => 10

        )</p>

<p>    [4] => Array

        (

            [0] => 딸기

            [1] => 4

        )</p>

<p>    [5] => Array

        (

            [0] => 수박

            [1] => 1

        )</p>

<p>    [6] => Array

        (

            [0] => 감자

            [1] => 1

        )</p>

<p>)

제품    개수 딸기    4 딸기    4 멜론    4 멜론    10 딸기    4 수박    1 감자    1

중복된 결과값은 개수를 곱해서 한개씩만 뽑고 싶습니다.

원하는 결과값 딸기    12 멜론    14 수박    1 감자    1

이것저것 막 해보고 있는데... 원하는 값이 나오질 않네요 ㅠㅠ

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트

</p>

<p><?php</p>

<p>    $sql = "</p>

<p>    select</p>

<p>        group_concat(wr_12 separator '||') wr_12a,</p>

<p>        group_concat(wr_21 separator '||') wr_21b</p>

<p>      from {$write_table}</p>

<p>         where wr_29 between '{$stx1}' and '{$stx2}'</p>

<p>        ";</p>

<p>    $result = sql_query($sql, true);</p>

<p>    while ($row = sql_fetch_array($result)) {</p>

<p>        $list_namea = explode('||',$row['wr_12a']);</p>

<p>        $list_nameb = explode('||',$row['wr_21b']);</p>

<p>        $result_array = array();</p>

<p>        foreach ($list_namea as $key=>$val)</p>

<p>        {</p>

<p>            $result_array[$list_namea[$key]] += $list_nameb[$key];</p>

<p>        }</p>

<p>        foreach ($result_array as $key=>$val) { ?></p>

<p>    <tr></p>

<p>        <td><?php echo $key; ?></td></p>

<p>        <td><?php echo $val; ?></td></p>

<p>    </tr></p>

<p>    <?php }  }  ?></p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

감사합니다.

댓글을 작성하려면 로그인이 필요합니다.

</p>

<p><?php

$arr = array(

    array

    (

        '딸기',

        4

    ),

    array

    (

        '딸기',

        4

    ),

    array

    (

        '멜론',

        4

    ),

    array

    (

        '멜론',

        10

    ),

    array

    (

        '딸기',

        4

    ),

    array

    (

        '수박',

        1

    ),

    array

    (

        '감자',

        1

    )

);

print_r($arr);</p>

<p>$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);

?></p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

답변 감사합니다.
위에분이 먼저 남기셔서.. 죄송합니다.

댓글을 작성하려면 로그인이 필요합니다.

음.. array_search 혹은 in_array로 하면 되지 않을까요?

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

답변 감사합니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인

전체 질문 목록

🐛 버그신고