【发布时间】:2013-03-20 19:58:41
【问题描述】:
我有这个多维数组,我将其命名为“原始”:
$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 的示例。
谢谢
【问题讨论】:
-
通过使用 array_merge 你可以合并你的数组