Heim > Fragen und Antworten > Hauptteil
Bestimmen Sie anhand mehrerer Schlüssel, ob Arrays gleich sind
Fügen Sie in derselben Zeile die Werte hinzu
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,
],
]
滿天的星座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;
世界只因有你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;
}