сумма массивов, в то время как sql-> fetch () - PullRequest
3 голосов
/ 19 апреля 2019

Мой код выглядит так:

$sql = $pdo->prepare('SELECT source_clicks,source_impr,source_spend FROM `statistic` WHERE camp_id =? AND date BETWEEN ? AND ?');
$sql->bindColumn('source_clicks',$source_clicks);
$sql->bindColumn('source_impr',$source_impr);
$sql->bindColumn('source_spend',$source_spend);
$sql->execute([$_POST['get_source_stat'],$date[0],$date[1]]);

while ( $sql->fetch()) {
    $data = explode(',',$source_clicks);
    print_r($data);

}

вывод, который я получаю:

Array ( [0] => 30 [1] => 30 [2] => 51 [3] => 108 ) Array ( [0] => 30 [1] => 30 [2] => 51 [3] => 228 )

Мне нужно сложить эти массивы, сохранив их ключи, и получить что-то вроде этого:

array ([0] => 60 [1] => 60 [2] => 102 [3] => 336)

Можете ли вы сказать мне, как я могу это сделать?

1 Ответ

1 голос
/ 19 апреля 2019

Один из способов сделать это - поместить каждое взорванное значение $source_clicks в массив, а затем использовать array_sum и array_column для получения результатов, например

$data = array();
while ($sql->fetch()) {
    $data[] = explode(',',$source_clicks);
}
$sums = array();
foreach (array_keys($data[0]) as $column) {
    $sums[$column] = array_sum(array_column($data, $column));
}
print_r($sums);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...