我真的很尴尬地问这样一个问题,但是有一天你花了一万个小时来完成最简单的功能,而你尝试解决它们的次数越多,你得到的解决方案就越复杂….我不知道我想浪费更多时间,所以这就是问题所在.
$items=array(
0=> array('name'=>'red','value'=>2),
1=> array('name'=>'black','value'=>1),
2=> array('name'=>'red','value'=>3)
);
我需要一个检测相同名称的函数,并将它们合并,然后将它们的值相加.这意味着在函数完成后,数组应如下所示:
$items=array(
0=>array('name'=>'red','value'=>5),
1=>array('name'=>'black','value'=>1)
);
(‘red’有两个值为2和3的条目,操作后,red应该有1个条目,值为5)
谢谢.
解决方法:
首先,你能简单地把它变成一个关联数组,以便它为你自己处理吗?
$items = array(
'red' => 5,
'black' => 1,
);
如果没有,你总是可以通过循环复制数组来做到这一点(不是最好的,但每次都有效):
$newItems = array();
foreach ($items as $item) {
if (!isset($newItems[$item['name']])) {
$newItems[$item['name']] = $item;
} else {
$newItems[$item['name']]['value'] += $item['value'];
}
}
$items = array_values($newItems);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。