array_sum 来自 sql

array_sum from sql

我对 php 还很陌生,所以我正在寻找一些方向。我正在查询 sql 服务器,我需要对某些列进行求和。如果我使用有效的数组 1、2、3,但我似乎无法获得 impressions_total.

的值
$sql = "SELECT * FROM dash_g_adwords_csv";
$stmt = sqlsrv_query($conn, $sql);
if( $stmt === false) {
   die( print_r( sqlsrv_errors(), true) );
}

//while($row = sqlsrv_fetch_rows($stmt)){
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_BOTH) ) {
   //print_r($row);
   $impressions_total = array('impressions_total', 'impressions_image', 'impressions_search'); 
   //$impressions_total = array(1, 2, 3); 
   //$click_total = array('$click_text', '$click_image', '$click_search');

   echo
   "<tr><td>" . $row['brand'] .
   "</td><td>" . $row['period'] .
   "</td><td>" . array_sum($impressions_total) .
   "</td><td>" . array_sum['$click_total'] .
   "</td></tr>";
}
sqlsrv_free_stmt( $stmt);
 $impressions_total = array('impressions_total', 'impressions_image', 'impressions_search'); 

此 LOC 使您的 impressions_total 成为字符串数组,而不是整数或数字数组。

array_sum 

仅适用于数字数组。

您尝试对不起作用的字符串数组求和!

您似乎想对展示次数和点击次数求和。所以你可以使用以下内容:

while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_BOTH)) {
    $impressions_total = [$row['impressions_total'], $row['impressions_image'], $row['impressions_search']];
    $click_total = [$row['click_text'], $row['click_image'], $row['click_search']];

   echo
   "<tr><td>" . $row['brand'] .
   "</td><td>" . $row['period'] .
   "</td><td>" . array_sum($impressions_total) .
   "</td><td>" . array_sum($click_total) .
   "</td></tr>";
}