Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php添加具有相同值的数组_Php - Fatal编程技术网

php添加具有相同值的数组

php添加具有相同值的数组,php,Php,我在PHP中有这个数组,我想对相同数组的值求和 array:3 [ 0 => array:3 [ "days" => 1 "price" => 4000 "cost" => 4000 ] 1 => array:3 [ "days" => 1 "price" => 3000 "cost" => 3000 ] 2 => array:3 [ "days" => 1

我在PHP中有这个数组,我想对相同数组的值求和

array:3 [
  0 => array:3 [
    "days" => 1
    "price" => 4000
    "cost" => 4000
  ]
  1 => array:3 [
    "days" => 1
    "price" => 3000
    "cost" => 3000
  ]
  2 => array:3 [
    "days" => 1
    "price" => 3000
    "cost" => 3000
  ]
]
我要用这个密码:

array:2 [
  0 => array:3 [
    "days" => 1
    "price" => 4000
    "cost" => 4000
  ]
  1 => array:3 [
    "days" => 2
    "price" => 6000
    "cost" => 6000
  ]
]

我如何才能做到这一点?

不是很节省时间或内存,而是工作:

$results = [];

// create a two dimensional array to collect all arrays which are the same
$collection = [];
foreach ($input as $elem) {
    $collection[serialize($elem)][] = $elem;
}

// create the result array
foreach ($collection as $elems) {
    $result = [];
    foreach ($elems[0] as $key => $value) {
        $result[$key] = $value * count($elems);
    }
    $results[] = $result;
}

print_r($results);

(假设你的数组是$input)

Dude,为什么要改变这个问题?“现在它没有任何意义了…”Brainfeeder现在恢复了它的功能..你能帮忙吗?谢谢!它起作用了!如果我只想计算天数和成本,并将价格作为初始值,该怎么办?(上面代码中的3000)为什么首先要“对相同数组的值求和”?你想解决什么问题?您想在购物车或类似物品中对相同的物品进行分组吗?如果是,“相同数组”不是分组的好标准。也许你需要在成本和天数旁边加上一个商品ID。