Heim  >  Fragen und Antworten  >  Hauptteil

thinkphp - php二维数组去除重复,重复值相加

$arr = array(
    array('id' => 123, 'name' => '张三', 'amount'=>'1'),
    array('id' => 123, 'name' => '李四', 'amount' => '1'),
    array('id' => 124, 'name' => '王五', 'amount' => '1'),
    array('id' => 125, 'name' => '赵六', 'amount' => '1'),
    array('id' => 126, 'name' => '赵六', 'amount' => '2'),
    array('id' => 126, 'name' => '赵六', 'amount' => '2')
);

如果数组内的name相等,最终保留一个,但是amount的值相加。
请问这样如何处理?

PHP中文网PHP中文网2749 Tage vor396

Antworte allen(2)Ich werde antworten

  • 天蓬老师

    天蓬老师2017-04-10 15:56:55

    对数组进行一次遍历就可以了。

    $arr = array(
        array('id' => 123, 'name' => '张三', 'amount'=>'1'),
        array('id' => 123, 'name' => '李四', 'amount' => '1'),
        array('id' => 124, 'name' => '王五', 'amount' => '1'),
        array('id' => 125, 'name' => '赵六', 'amount' => '1'),
        array('id' => 126, 'name' => '赵六', 'amount' => '2'),
        array('id' => 126, 'name' => '赵六', 'amount' => '2')
    );
    
    $new = array();
    
    foreach($arr as $row){
        if(isset($new[$row['name']])){
            $new[$row['name']]['amount'] += $row['amount'];
        }else{
            $new[$row['name']] = $row;
        }
    }
    
    print_r($new);

    Antwort
    0
  • 天蓬老师

    天蓬老师2017-04-10 15:56:55

    使用迭代器即可,非常方便

    Antwort
    0
  • StornierenAntwort