我有这个多维数组,我将其命名为“原始”:
$original=
array
0 =>
array
'animal' => 'cats'
'quantity' => 1
1 =>
array
'animal' => 'dogs'
'quantity' => '1'
2 =>
array
'animal' => 'cats'
'quantity' => '3'
但是,我想将内部数组与同一动物合并以生成这个新数组(结合数量):
$new=
array
0 =>
array
'animal' => 'cats'
'quantity' => 4
1 =>
array
'animal' => 'dogs'
'quantity' => '1'
我知道在 stackoverflow 上有类似的问题,但不够相似,我无法弄清楚如何使用这些问题必须应用于这个特定示例的反馈。是的,我知道在你们很多人看来我可能看起来很愚蠢,但请记住,曾经有一段时间你们也不知道使用数组的废话 :)
我试过下面的代码,但得到Fatal error: Unsupported operand types (Referring to line 11)
. 如果我得到那个错误消失,我不确定这段代码是否会产生我想要实现的目标。
$new = array();
foreach($original as $entity){
if(!isset($new[$entity["animal"]])){
$new[$entity["animal"]] = array(
"animal" => $entity["animal"],
"quantity" => 0,
);
}
$new[$entity["animal"]] += $entity["quantity"];
}
所以,我不知道我在做什么,我真的可以从专家那里得到一些帮助。为了尝试提出一个非常明确的问题,这里是……我需要对代码进行哪些更改,以便将$original
其转换为$new
?如果我提供的代码完全错误,您能否提供一个替代示例来解决问题?另外,我唯一熟悉的语言是 PHP,所以请提供一个仅使用 PHP 的示例。
谢谢