我很茫然,我看过类似的帖子,但无法让我的数组有类似的结构,以便我可以实现解决方案: 我有一个我这样创建的数组:
foreach($ lastsubresult as $ lastselect){ array_push($ finaldata_array,$ subrecord-> data。“=>”。$ lastselect-> total);
当我打印这个数组时,输出是:
Array (
[0] => aaaaa=>4
[1] => aaaaa=>3
[2] => aaaaa=>1
[3] => tyt=>2
[4] => tyt=>3
)
我想在这个数组中只有单个aaaaa和单个tyt,并且添加了数字,如下所示:
[0] => aaaaa=>8
[1] => tyt=>5
甚至,
[aaaaa] => 8
[tyt] => 5
我看过这样的例子: $ merged = array();
foreach ($finaldata_array as $answer) {
if (isset($merged[$answer['answer']])) {
$merged[$answer['answer']]['score'] += $answer['score'];
} else {
$merged[$answer['answer']] = $answer;
}
}
var_dump($merged);
但似乎无法使我的数组与示例类似。这个例子正是我想要实现的目标。我的array_push可能是错的。
我将非常感谢你的帮助。 非常感谢你。 克里斯托弗
答案 0 :(得分:1)
我只能猜测你的数据是什么样的,但你想要做的事情是这样的:
foreach($lastsubresult as $lastselect)
{
$finaldata_array[$subrecord->data] = isset($finaldata_array[$subrecord->data]) ? $finaldata_array[$subrecord->data] + $lastselect->total : $lastselect->total;
}
或者,如果您不喜欢/不熟悉三元运算符? :
foreach($lastsubresult as $lastselect)
{
if(!isset($finaldata_array[$subrecord->data]))
{
$finaldata_array[$subrecord->data] = $lastselect->total;
}
else
{
$finaldata_array[$subrecord->data] += $lastselect->total;
}
}