Спасибо всем.
Решение такое:
public function getMaxMonth($min,$max)
{
//$min = $this->find()->select(['plus','date_op'])->where(['user_id' => yii::$app->user->getId()])->andWhere(['between','date_op', $min, $max + 3600 *24])->asArray()->all();
$min = $this->find()->select(['SUM(plus) as plus','DATE_FORMAT(FROM_UNIXTIME(`date_op`), \'%d.%m.%Y\') as date_op'])->where(['user_id' => yii::$app->user->getId()])->andWhere(['between','date_op', $min, $max + 3600 *24])->orderBy('date_op')->groupBy('date_op')->asArray()->all();
$new = [];
foreach($min as $k) {
//Функция сложения дат и доходов
$new[(int) $k['date_op']] = $k['plus'];
//$new[(int) date('d',$k['date_op'])] += $k['plus'];
}
// $diff = Enum::dateList(1,31);
$newdiff = [];
// foreach($diff as $key => $value) {
// $newdiff[$key] += 0;
// }
for($i = 1; $i<32; $i++) {
$newdiff[$i] = 0;
}
$new = ArrayHelper::merge($new,$newdiff);
return $new;
}
Функция выводит сумму колонок Plus за месяц по числам, если значения на число нет, то 0, а теперь не могу за год сделать выборку, с += было проще,
public function getMaxYear()
{
$now = date('m',time());
$startyear = strtotime(date("Y-1-1"));
$year = [];
for($i = 1; $i < $now + 1; $i++) {
$diff = $this->getMaxMonth(strtotime(date("Y-$i-1")),strtotime(date("Y-$i-31")));
foreach($diff as $k)
{
$year[$i] += $k;
}
}
return $year;
}