$sql = "SELECT `num`,`project`,`project_category`,`code`,`item_real`,`item_budget`,`item_current_predict`,`item1`,`item2`,`item3`,`item4`,
`item5`,`item6`,`tuisuan`,`tuisuan_status`,`current_status`,`comment`,`id`";
$sql .= "FROM `budgetcontrol` ".$str."WHERE `department` = 'pu' order by `num` asc";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result))
{
// echo $row['item1'].' '.$row['item2'].' '.$row['item3'].'<br />'; if($row['porject'] == '物流费')
{
$arr = array($row);
$grp_sum = array();
foreach($row as $value)
{
$grp_sum['物流费']['item1'] += $row['item1'];
$grp_sum['物流费']['item2'] += $row['item2'];
$grp_sum['物流费']['item3'] += $row['item3'];
}
print_r($grp_sum);
}
}
我想达到这样的效果;$arr = array(array(1, 0.1), array(1, 0.3), array(2, 10), array(2, 20));
$grp_sum = array();
foreach ($arr as $value)
{
$grp_sum[$value[0]] += $value[1];
}
print_r($grp_sum).'<br />';
请问哪里出了问题?
解决方案 »
- preg_match_all问题
- PHP中require PK require_once, 构建自己的高效require_once(10倍的性能提升)
- 关于一个三级分类的数据处理
- 急求PHP+javascript+MySQL的四级联动菜单数据版的实例源码(不要asp的,纯PHP+Javascript)在线等!
- 一个正则替换问题
- Crontab a PHP script updates MySQL and sends mail
- 请问PHP团队协作的时候,是怎样进行版本控制的?
- 如何自动取得本机的IP地址
- 从LINUX上移植到WIN2000上的PHP+MYSQL的错误。请看看。
- 谁帮帮我解决关于php字符处理函数的问题
- 求助,值的累加问题
- 麻烦高手帮我看看,这个循环哪里出问题了,怎么循环一次就跳出?
foreach($row as $value)
{
$grp_sum['物流费']['item1'] += $row['item1'];
$grp_sum['物流费']['item2'] += $row['item2'];
$grp_sum['物流费']['item3'] += $row['item3'];
}
print_r($grp_sum);
改为
$grp_sum = array(); $grp_sum['物流费']['item1'] += $row['item1'];
$grp_sum['物流费']['item2'] += $row['item2'];
$grp_sum['物流费']['item3'] += $row['item3']; print_r($grp_sum);
$sql = "SELECT `num`,`project`,`project_category`,`code`,`item_real`,`item_budget`,`item_current_predict`,`item1`,`item2`,`item3`,`item4`,
`item5`,`item6`,`tuisuan`,`tuisuan_status`,`current_status`,`comment`,`id`";
$sql .= "FROM `budgetcontrol` ".$str."WHERE `department` = 'pu' order by `num` asc";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result))
{
// echo $row['item1'].' '.$row['item2'].' '.$row['item3'].'<br />'; if($row['porject'] == '物流费')
{
$grp_sum = array();
$grp_sum['物流费']['item1'] += $row['item1'];
$grp_sum['物流费']['item2'] += $row['item2'];
$grp_sum['物流费']['item3'] += $row['item3']; print_r($grp_sum);//还是没有显示
}
}
这个是每次都把$arr刷新了呀,如果不是你所希望的应该用$arr[] = foreach($row as $value)
这个对$row有什么意义??循环内都加下标直接调用了,还要foreach么?$value完全没出现……
$a += 1;
$a = 0;
$a += 1;
...10次重复后最后$a = ?清空了你的累计还有什么用?mysql_fetch_array()默认是MYSQL_BOTH
MYSQL_BOTH 有用么?你的整数下标在哪使用了?
不过这个在这段代码也没啥影响就算了,我只是提醒你,用字串和整数key混合要慎用,除非你的思路很清晰,否则foreach用起来查错查几天都没结果,自己要养成好的习惯,该字串就字串,该整数就整数
可是我输出还是没有结果?不知道哪里有问题,你能帮我看看么?
{
// echo $row['item1'].' '.$row['item2'].' '.$row['item3'].'<br />'; if($row['porject'] == '物流费')
{
//这里不是新建一个数组?
//$grp_sum = array();
$grp_sum['物流费']['item1'] += $row['item1'];
$grp_sum['物流费']['item2'] += $row['item2'];
$grp_sum['物流费']['item3'] += $row['item3'];
}
print_r($grp_sum);
}
while($row = mysql_fetch_array($result))
{
// echo $row['item1'].' '.$row['item2'].' '.$row['item3'].'<br />';if($row['porject'] == '物流费')
{
//这里不是新建一个数组?
//$grp_sum = array();$grp_sum['物流费']['item1'] += $row['item1'];
$grp_sum['物流费']['item2'] += $row['item2'];
$grp_sum['物流费']['item3'] += $row['item3'];
}
print_r($grp_sum);
}试一下吧
Array ( ) Array ( ) Array ( ) Array ( ) Array ( ) Array ( ) Array ( ) Array ( ) Array ( ) Array ( ) Array ( ) Array ( ) Array ( ) Array ( ) Array ( )一个15个空数组。我怎么能把值显示出来?
$grp_sum = array();
foreach ($arr as $value)
{
$grp_sum[$value[0]] += $value[1];
}
print_r($grp_sum).'<br />';