Array
(
[0] => 1|物品一|6
[1] => 2|物品一|10
[2] => 3|物品一|3
[3] => 3|物品二|6
[4] => 4|物品二|3
[5] => 4|物品三|4
[6] => 5|物品四|1
)
比如得到这样的一个数组 数据ID|物品名称|数量
怎么统计同一种物品的数量???
感谢各位,都可以实现我想要的效果,但是只能采纳一个,我采纳先回答的,其他的各位对不住了,不过还是谢谢你们
第1个回答 2014-10-28
$testarray = array('1|物品一|6','2|物品一|10','3|物品一|3','3|物品二|6','4|物品二|3','4|物品三|4','5|物品四|1');
$result = array();
foreach($testarray as $w){
$text = explode('|',$w);
$name = $text[1];
$num = $text[2];
$result[$name] += $num;
}
print_r($result);
$result = array();
foreach($testarray as $w){
$text = explode('|',$w);
$name = $text[1];
$num = $text[2];
$result[$name] += $num;
}
print_r($result);
试试这个
第2个回答 推荐于2016-10-15
<?php
$array = Array(
"1|物品一|6",
"2|物品一|10",
"3|物品一|3",
"3|物品二|6",
"4|物品二|3",
"4|物品三|4",
"5|物品四|1");
$arr = array();
foreach($array as $row){
$goods = explode("|",$row);
if(isset($arr[$goods[1]])){
$arr[$goods[1]] += $goods[2];
}else{
$arr[$goods[1]] = intval($goods[2]);
}
}
var_dump($arr);
?>本回答被提问者采纳
$array = Array(
"1|物品一|6",
"2|物品一|10",
"3|物品一|3",
"3|物品二|6",
"4|物品二|3",
"4|物品三|4",
"5|物品四|1");
$arr = array();
foreach($array as $row){
$goods = explode("|",$row);
if(isset($arr[$goods[1]])){
$arr[$goods[1]] += $goods[2];
}else{
$arr[$goods[1]] = intval($goods[2]);
}
}
var_dump($arr);
?>本回答被提问者采纳
第3个回答 2014-10-28
$b=array();
$a=array('1|物品一|6','2|物品一|10','3|物品一|3','3|物品二|6','4|物品二|3','4|物品三|4','5|物品四|1');
foreach($a as $k=>$v){
$v=explode('|',$v);
if(!isset($b[$v[1]])){
$b[$v[1]]=$v[2];
}else{
$b[$v[1]]+=$v[2];
}
//echo '<pre>',var_dump($v),'</pre>';
}unset($a);
echo '<pre>',var_dump($b),'</pre>';
die();
$a=array('1|物品一|6','2|物品一|10','3|物品一|3','3|物品二|6','4|物品二|3','4|物品三|4','5|物品四|1');
foreach($a as $k=>$v){
$v=explode('|',$v);
if(!isset($b[$v[1]])){
$b[$v[1]]=$v[2];
}else{
$b[$v[1]]+=$v[2];
}
//echo '<pre>',var_dump($v),'</pre>';
}unset($a);
echo '<pre>',var_dump($b),'</pre>';
die();
第4个回答 2014-10-28
遍历 然后 判断