0

我很茫然,我看过类似的帖子,但无法让我的数组具有相似的结构,以便我可以实现解决方案:我有一个这样创建的数组:

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 可能是错误的。

我将非常感谢您的帮助。非常感谢。克里斯托弗

4

1 回答 1

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;
    }
}
于 2013-09-27T13:35:04.017 回答