我正在尝试编写一些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。我们缺少介于两者之间的数字。也许我不理解你的解决方案。如果我错了,请纠正我。谢谢你的帮助。