Php 在单个数组中按键组合值
没有什么能真正实现我想要实现的目标。我有以下数组:Php 在单个数组中按键组合值,php,arrays,sum,Php,Arrays,Sum,没有什么能真正实现我想要实现的目标。我有以下数组: Array( [0] => Array ( [chicken] => 7 ) [1] => Array ( [cheese] => 9 ) [2] => Array ( [marinade] => 3 ) [3] => Array ( [cookbook] => 7
Array(
[0] => Array
(
[chicken] => 7
)
[1] => Array
(
[cheese] => 9
)
[2] => Array
(
[marinade] => 3
)
[3] => Array
(
[cookbook] => 7
)
[4] => Array
(
[chicken] => 11
)
[5] => Array
(
[cheese] => 6
)
[6] => Array
(
[marinade] => 12
)
)
我想通过键对所有值求和。如果这个键在数组中多次出现,比如chicken,我想对这些值求和
array
(
[chicken] => 18,
[cheese] => 16
... etc
)
因此,首先需要一个循环来迭代第一个数组,以获得第二级数组。然后可以从每个数组中获取当前键和值,将键关联的新数组中的值相加
// where the sums will live
$sum = [];
foreach($array as $item) {
$key = key($item);
$value = current($item);
if (!array_key_exists($key, $sum)) {
// define the initial sum of $key as 0
$sum[$key] = 0;
}
// add value to the sum of $key
$sum[$key] += $value;
}
这里有一个简单的例子,希望对大家有所帮助
$result = array();
foreach($data as $key => $value)
{
$valueKey = key($value);
$result[$valueKey] += $value[$valueKey];
}
显示您的尝试和出错的地方。我的尝试没有汇总值,但只保留最后/最高值,因此该代码是无用的。如果我写的任何代码都可以用来发布,我肯定会在这个网站上鼓励你展示你的尝试。特别是在处理类似问题时,我理解,而且我通常也会理解。问题是,我一直在盲目地盯着自己看这段代码,目前正在尝试另一种方法,为此我删除了以前的代码。当我得到一个新的尝试时,我将进行更新。我添加了一个应该有效的答案,但为了将来,请提供您的代码尝试,即使是错的。你必须知道,在这种情况下,$value也是一个数组,并根据此编辑你的答案…如果你使用isset而不是数组,你的代码可能会更快。我很怀疑,在现代版本中,你会发现两者之间存在明显的现实差异。。