suchen

Heim  >  Fragen und Antworten  >  Hauptteil

PHP bestimmt, ob ein zweidimensionales Array denselben Wert speichert?

  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梦2860 Tage vor738

Antworte allen(2)Ich werde antworten

  • 滿天的星座

    滿天的星座2017-05-27 17:45:19

    谢邀!

        <?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;

    Antwort
    0
  • 世界只因有你

    世界只因有你2017-05-27 17:45:19

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

    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;
    }

    Antwort
    0
  • StornierenAntwort