有如下数组,希望以为其中一维数组相同字段合并,并且total字段相加。例子如下
array(4) {
[0]=>
array(2) {
["total"]=>
string(1) "1"
["name"]=>
string(4) "张三"
}
[1]=>
array(2) {
["total"]=>
string(1) "1"
["name"]=>
string(4) "张三"
}
[2]=>
array(2) {
["total"]=>
string(1) "3"
["name"]=>
string(4) "张三"
}
[3]=>
array(2) {
["total"]=>
string(1) "1"
["name"]=>
string(6) "李四"
}
}
期望去重合并后得到新数组:
array(2) {
[0]=>
array(2) {
["total"]=>
string(1) "5"
["name"]=>
string(4) "张三"
}
[1]=>
array(2) {
["total"]=>
string(1) "1"
["name"]=>
string(6) "李四"
}
}
有谁有好的算法么
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
$arr = array(
$item = array();
foreach($arr as $k=>$v){
}
echo '<pre>';
print_r(array_values($item));
我觉得可以参考桶排序的原理
已经解出来了,3个循环搞定,虽然复杂一点,但是貌似也没有更好的办法
能力有限,想不出好的算法,我也只能想到循环,但是觉得不应该是最好的。
说说的我的想法,(也许有这么个情况)我觉得这种数组应该是数据库设计不合理,或者思路上拐了个弯导致的问题。
为什么不能在在数据库设计的时候,把它设计的合理一点,或许说把sql语句写得合理一点,后期处理数据也许并不高效。
期待大神来一个厉害的算法,关注