如何根据相似的第一维值处理数组的第二维


How to process second dimension of an Array based on similar first dimension value?

我正在尝试编写一些php代码,以处理基于第一维值的相似值的数组的第二维值。

以下是示例输出。

[0] => Array (
             [0] => 1
             [1] => 0.091238491238491
       )
[1] => Array (
             [0] => 2
             [1] => 0.2221793635487
       )
[2] => Array (
             [0] => 2
             [1] => 0.10662717512033
       )
[3] => Array (
             [0] => 4
             [1] => 0.44354338998346
       )
[4] => Array (
             [0] => 6
             [1] => 0.2248243559719
       )
[5] => Array (
             [0] => 6
             [1] => 0.31764705882353
       )
[6] => Array (
             [0] => 6
             [1] => 0.15764625384879
       )
[7] => Array (
             [0] => 6
             [1] => 0.19160083160083
       )
[8] => Array (
             [0] => 12
             [1] => 0.31054875069499
       )
[9] => Array (
             [0] => 12
             [1] => 0.10915034227918
       )
[10] => Array (
             [0] => 15
             [1] => 0.32915461266474
       )
 //...........goes to 46000 elements

现在我想做的是,如果每个数组的索引0值相似,那么我想添加索引1的值。例如,如果4个数组的0索引值相同,我想将所有4个数组中的索引1值相加。如果第0个索引上有一个唯一的值,不要添加任何内容,只需存储索引1的值,然后继续。

非常感谢。Ghanshyam

$added = array();
foreach ($array as $item) {
    if (isset($added[$item[0]])) {
        $added[$item[0]] += $item[1];
    } else {
        $added[$item[0]] = $item[1];
    }
}
$p=0;
$temp =  $final_prod_ex[0][1];
for($x=0; $x<count($final_prod)-1; $x++){
    if($final_prod_ex[$x][0]==$final_prod_ex[$x+1][0]){
        $temp = $temp + $final_prod_ex[$x+1][1];
    }
    else{
        $ans[$p] = $temp."    ".$final_prod_ex[$x][0];
        $temp = $final_prod_ex[$x+1][1];
        $p++;
    }
}

经过一番思考,我终于明白了(我是编程新手)。。。数组的名称为$final_prod_ex。如果我能让它变得更好,请对此发表评论。很抱歉@欺骗。我无法理解你的解决方案。我知道您正试图将一个数组的值作为另一个的索引。但情况是,这个值不像0,1,2,3,4……它像1,3,5,6,7,10。我们缺少介于两者之间的数字。也许我不理解你的解决方案。如果我错了,请纠正我。谢谢你的帮助。