$arr=array();
$arr[0]=array('ID'=>'A','Num'=>100);
$arr[1]=array('ID'=>'B','Num'=>200);
$arr[2]=array('ID'=>'A','Num'=>300);
$arr[3]=array('ID'=>'B','Num'=>400);
$arr[4]=array('ID'=>'C','Num'=>500);算法之后的结果为
$arr=array(array('ID'=>'A','Num'=>400),array('ID'=>'A','Num'=>600),array('ID'=>'A','Num'=>500));
$arr[0]=array('ID'=>'A','Num'=>100);
$arr[1]=array('ID'=>'B','Num'=>200);
$arr[2]=array('ID'=>'A','Num'=>300);
$arr[3]=array('ID'=>'B','Num'=>400);
$arr[4]=array('ID'=>'C','Num'=>500);算法之后的结果为
$arr=array(array('ID'=>'A','Num'=>400),array('ID'=>'A','Num'=>600),array('ID'=>'A','Num'=>500));
$arr=array();
$arr[0]=array('ID'=>'A','Num'=>100);
$arr[1]=array('ID'=>'B','Num'=>200);
$arr[2]=array('ID'=>'A','Num'=>300);
$arr[3]=array('ID'=>'B','Num'=>400);
$arr[4]=array('ID'=>'C','Num'=>500);$tmp = array();
foreach ($arr as $v)
{
if(isset($tmp[$v['ID']]))
{
$tmp[$v['ID']]['Num'] += $v['Num'];
}
else
{
$tmp[$v['ID']]['ID'] += $v['ID'];
$tmp[$v['ID']]['Num'] += $v['Num'];
}
}
$arr = array_values($tmp);
print_r($arr);
$arr=array();
$arr[0]=array('ID'=>'A','Num'=>100);
$arr[1]=array('ID'=>'B','Num'=>200);
$arr[2]=array('ID'=>'A','Num'=>300);
$arr[3]=array('ID'=>'B','Num'=>400);
$arr[4]=array('ID'=>'C','Num'=>500);$tmp = array();
foreach ($arr as $v)
{
if(isset($tmp[$v['ID']]))
{
$tmp[$v['ID']]['Num'] += $v['Num'];
}
else
{
$tmp[$v['ID']]['ID'] = $v['ID'];
$tmp[$v['ID']]['Num'] = $v['Num'];
}
}
$arr = array_values($tmp);
print_r($arr);
才对吧? ID相同的累加?
$arr[0]=array('ID'=>'A','Num'=>100);
$arr[1]=array('ID'=>'B','Num'=>200);
$arr[2]=array('ID'=>'A','Num'=>300);
$arr[3]=array('ID'=>'B','Num'=>400);
$arr[4]=array('ID'=>'C','Num'=>500);foreach( $arr as $v)
{
$newArray[$v['ID']] = array('ID'=>$v['ID'],'Num'=>$newArray[$v['ID']]['Num'] + $v['Num']);
}
echo "<pre/>";
print_r(array_values($newArray));
foreach ($arr as $key=>$val){
$akey = $val['ID'];
if(!isset($result[$akey])) $result[$akey] = $val['Num'];
else $result[$akey] += $val['Num'];
}
print_r($result);
自己写的
$t=array_diff($arr,array());for($i=0;$i<count($arr);$i++)
{
$k=$arr[$i];
for($j=$i+1;$j<count($arr);$j++)
{
if($k["ID"]==$arr[$j]["ID"])
{
$t[$i]["Num"]+=$arr[$j]["Num"];
unset($t[$j]);
}
}
}
print_r($t);//Array ( [0] => Array ( [ID] => A [Num] => 400 ) [1] => Array ( [ID] => B [Num] => 600 ) [4] => Array ( [ID] => C [Num] => 500 ) )
php数组复制的函数是什么?$t=array_diff($arr,array());
$arr=array();
$arr[0]=array('ID'=>'A','Num'=>100);
$arr[1]=array('ID'=>'B','Num'=>200);
$arr[2]=array('ID'=>'A','Num'=>300);
$arr[3]=array('ID'=>'B','Num'=>400);
$arr[4]=array('ID'=>'C','Num'=>500);foreach( $arr as $k=>$v)
{
if(!isset($keys[$v['ID']]))
{
$keys[$v['ID']] = $k;
}
$newArray[$keys[$v['ID']]] = array('ID'=>$v['ID'],'Num'=>$newArray[$keys[$v['ID']]]['Num'] + $v['Num']);
}
echo "<pre/>";
print_r($newArray);