我正在尝试编写一些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
答案 0 :(得分:2)
$added = array();
foreach ($array as $item) {
if (isset($added[$item[0]])) {
$added[$item[0]] += $item[1];
} else {
$added[$item[0]] = $item[1];
}
}
答案 1 :(得分:0)
$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++;
}
}
经过深思熟虑(我是编程新手)后终于弄明白了...... Array的名字是$ final_prod_ex。如果我能做得更好,请对此进行评论。对不起@deceze。我无法理解你的解决方案。我知道你试图将一个数组的值作为另一个数组的索引。但情况是,这个值不像0,1,2,3,4 ....它像1,3,5,6,7,10。我们之间缺少数字。也许我不理解你的解决方案。如果我错了,请纠正我。 感谢您的帮助。