回答編集履歴

2 2

takasima20

takasima20 score 5919

2016/09/17 23:39  投稿

SQLですませていいならこんなかんじ?
```PHP
$sth = $dbh->prepare("SELECT day_id, sum(maru) as maru, sum(batu) as batu FROM data WHERE num1 = ? AND num2 = ? group by day_id");
```
--- 追加 ---
//かぶったのでコードの方も(^_^;
```PHP
$Data = array();
while($row = $sth->fetch(PDO::FETCH_ASSOC)){
   $id = $row['day_id'];
   if (!isset($Data[$id]) {
     $Data[$id] = array();
     $Data[$id]['maru'] = 0;
     $Data[$id]['batu'] = 0;
   }
   $Data[$id]['maru'] += $row['maru'];
   $Data[$id]['batu'] += $row['batu'];
}
$Data2 = array();
foreach ($Data as $k=>$a) {
   $Data2[] = array(
   'day_id'=>$k,
   'maru'=>$a['maru'],
   'batu'=>$a['batu'],
   );
}
```
```
//あ、こっちはSQLそのままって前提です。
1 1

takasima20

takasima20 score 5919

2016/09/17 23:35  投稿

SQLですませていいならこんなかんじ?
```PHP
$sth = $dbh->prepare("SELECT day_id, sum(maru) as maru, sum(batu) as batu FROM data WHERE num1 = ? AND num2 = ? group by day_id");
```  
--- 追加 ---  
//かぶったのでコードの方も(^_^;  
```PHP  
$Data = array();  
while($row = $sth->fetch(PDO::FETCH_ASSOC)){  
   $id = $row['day_id'];  
   if (!isset($Data[$id]) {  
     $Data[$id] = array();  
     $Data[$id]['maru'] = 0;  
     $Data[$id]['batu'] = 0;  
   }  
   $Data[$id]['maru'] += $row['maru'];  
   $Data[$id]['batu'] += $row['batu'];  
}  
 
$Data2 = array();  
foreach ($Data as $k=>$a) {  
   $Data2[] = array(  
   'day_id'=>$k,  
   'maru'=>$a['maru'],  
   'batu'=>$a['batu'],  
   );  
}  
```

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る