Maison > Questions et réponses > le corps du texte
Déterminez si les tableaux sont identiques en fonction de plusieurs clés
Dans la même ligne, additionnez les valeurs
C'est mon idée. Rassemblez les clés et utilisez-les comme une seule clé. Ensuite, vous pouvez juger sur la base d'une seule clé ?
<?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
Merci pour l'invitation !
<?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
Frère, je t'ai écrit la méthode la plus simple pour enlever des poids, prends-la et utilise-la.
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;
}