给定值:
columnA columnB
ball 2
star 1
sun 1
ball 1
star 3
sun 4
ball 1
输出:
columnA columnB
ball 4
star 4
sun 5
有没有办法在php循环中获取输出。 抱歉。只是一个新手
答案 0 :(得分:1)
假设CSV如下所示:
ball,2
star,1
sun,1
ball,1
star,3
sun,4
ball,1
以下内容应该有效
$handle = fopen("mycsv.csv", "r");
$out = array();
while($data = fgetcsv($handle)) {
$out[$data[0]] = isset($out[$data[0]]) ? $out[$data[0]] + $data[1] : $data[1];
}
fclose($handle);
foreach($out as $key => $value) {
echo $key . " -> " . $value . "\n";
}
答案 1 :(得分:1)
是的,您需要使用SUM
和GROUP BY
。至于循环,在这种情况下你可以使用不同的循环我使用foreach
$sql = "SELECT columnA, SUM(columnB) as columnB
FROM mytable
GROUP BY columnA
ORDER BY columnA ASC";
$sth = $dbh->prepare($sql);
$sth->execute();
$result = $sth->fetchAll()
foreach($result as $res){
var_dump($res);
}
答案 2 :(得分:0)
如果这是一个数据库,你可以这样做:
$var = array("ball", "star", "sun");
$all = array();
foreach($var as $v){
$sql = "Select sum(columnB) from table_name WHERE columnA = " . $v;
$sth = $dbh->prepare($sql);
$sth->execute();
$result = $sth->fetchAll()
$all[] $result;
}
编辑:tbh其他答案比我的好。这仍然可以帮助你。