PHP数组重复值相加计算
目的:计算各种不同的价格单位的价格总和。
数据:
do {
$Price[] = $rs['Price'];
}
数组形式:$Price = array("212|RMB","152|RMB","170|RMB","321|RMB","140|USD","210|USD");//价格|符号
要求达到的效果:RMB:855 USD:350
由于对数组的操作实践不够,所以查PHP手册上的数组函数,试着去解决问题,最终还是在单独的一个测试页面里成功做出来了。代码如下:
$Price = array("212|RMB","152|RMB","170|RMB","321|RMB","140|USD","210|USD");//价格|符号
foreach ($Priceb as $a) {
$b =explode("|",$a);
$sym[] = $b[1];//符号
$pri[] = $b[0];//价格
}
$Pricet = array_keys(array_count_values($sym));//符号总数
for ($i=0;$i
}
echo $Pricet[$i].":".array_sum($Price[$i])." ";//符号:价格
}
但是发觉这样太过复杂,而且在实际操作中(从数据库读取数组出来),会出现Cannot use string offset as an array in E:\DATA\Report.php on line 119;这个错误提示,查了相关资料都不能解决问题,只好上CSDN上发帖求助,最终得到了一个理想的结果,由wasuka(萝莉控)写出的答案:
$Pricea = array("212|RMB","152|RMB","170|RMB","321|RMB","140|USD","210|USD");//价格|符号
foreach($Pricea as $v)
{
$tatol = explode("|", $v);
$a[$tatol[1]] += $tatol[0];
}
foreach($a as $key=>$val){
echo $key.":".$val." "; //符号:价格总数
}
佩服!原来数组的用法是如此之多,如此之妙,如此之简单。
CSDN相关帖子:http://community.csdn.net/Expert/topic/5674/5674007.xml
September 8th, 2010 at 8:54 am
Buy:Cialis Super Active+.Viagra Super Active+.Cialis Professional.Cialis.Soma.VPXL.Maxaman.Tramadol.Super Active ED Pack.Levitra.Propecia.Viagra.Zithromax.Cialis Soft Tabs.Viagra Professional.Viagra Super Force.Viagra Soft Tabs….