PHP bestimmt, ob ein zweidimensionales Array denselben Wert speichert?
过去多啦不再A梦
过去多啦不再A梦 2017-05-27 17:43:19
0
2
708
  1. Bestimmen Sie anhand mehrerer Schlüssel, ob Arrays gleich sind

  2. Fügen Sie in derselben Zeile die Werte hinzu

  3. Das ist meine Idee. Setzen Sie die Schlüssel zusammen und verwenden Sie sie als einen Schlüssel. Haben Sie noch andere Methoden?

    <?php
    
    $test = [
        [
            'name' : 'a',
            'age' : 12,
            'number' : 11,
            'score' : 50,
        ],
        [
            'name' : 'a',
            'age' : 12,
            'number' : 11,
            'score' : 30,
        ],
        [
            'name' : 'b',
            'age' : 12,
            'number' : 12,
            'score' : 50,
        ],
    ]
  4. Überprüfen Sie beispielsweise für ein Array wie dieses, ob es basierend auf dem Alter der Namensnummer wiederholt wird. Wenn es wiederholt wird, fügen Sie die Bewertungen hinzu.
过去多啦不再A梦
过去多啦不再A梦

Antworte allen(2)
滿天的星座

谢邀!

    <?php

    $test = [
        [
            'name'   => 'a',
            'age'    => 12,
            'number' => 11,
            'score'  => 50,
        ],
        [
            'name'   => 'a',
            'age'    => 12,
            'number' => 11,
            'score'  => 30,
        ],
        [
            'name'   => 'b',
            'age'    => 12,
            'number' => 12,
            'score'  => 50,
        ]
    ];
    
    $arr = array();
    foreach($test as $val) {
        $key = $val['name'] . '-' . $val['age'] . '-' . $val['number'];
        $arr[$key]['name']    = $val['name'];
        $arr[$key]['age']     = $val['age'];
        $arr[$key]['number']  = $val['number'];
        $arr[$key]['score']  += $val['score'];
    }
    
    var_dump("<pre>", array_values($arr));die;
世界只因有你

兄弟,给你写了个最简单的去重的方法,拿去用吧。

function uniqueArr($arr){
    $returnArr=[];
    
    //分隔符
    $separator="~!#!!#~#!!";
    //排序
    sort($arr);
    
    //去重
    foreach($arr as $value){
        $k=$value['name'].$separator.$value['number'].$separator.$value['age'];
        $returnArr[$k]=[
            'name'=>$value['name'],
            'number'=>$value['number'],
            'age'=>$value['age']
        ];//这里是去重
        $returnArr[$k]['score']+=$value['score'];//这里是累加
    }
    return $returnArr;
}
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage