php - 需要一个 PHP 数组问题的简单解决方案吗?

标签 php arrays function merge

问这样的问题我真的很尴尬,但在那些日子里,你花了 10000 小时在最简单的功能上,你越是尝试解决它们,你得到的解决方案就越复杂......我不想浪费更多时间,所以这就是问题所在。

我有一个数组:

  $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的条目,操作后,红色应该有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);

关于php - 需要一个 PHP 数组问题的简单解决方案吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3559068/

相关文章:

php - Paypal IPN 检测退款,PHP

php - 查询带领带的排行榜

javascript - 如何从数组对象中分离出差异?

java - 在java中添加和检索对象数组中的元素

函数内的javascript函数不返回数据

php - Yii cdbcriteria 选择关系的列

javascript - 如何有效地隐藏链接中的 Href?

php - 我可以测试回调是否有效吗?

java - 数组无法正确显示

javascript - 在函数中引用(this)