2

私はmysqlデータベースからいくつかの情報を取得しており、次のスクリプトを使用して表示しています(私はCodeigniterを使用しています)

 <?php if(count($records) > 0) { ?>

   <?php $i = $this->uri->segment(3) + 0; foreach ($records as $row){ $i++; ?>
<?php echo $row['amount']; ?>    <br>

<?php  } ?>

<?php } else { echo "No Record Found";} ?>

私が得る出力は次のようなものです

10,000
20,000.34
15,250.50

今私がやろうとしているのは、入っているすべての値を合計し$row['amount'];、合計の値を入れて、$sum_value$sum_value をエコーすると次の値を取得することです

45,250.84

親切にやり方を教えてください。

mysql を使用して合計を行うことができたことは知っていますが、この方法で行う方法を学びたいと思っています。

前もって感謝します :)

4

3 に答える 3

6

foreach を介したループごとに合計を繰り返し追加します。

$sum = 0;
foreach ( $records as $row ) {
  $sum += str_replace(",", "", $row['amount']);
}

echo number_format( $sum, 2 );
于 2012-04-07T21:40:52.353 に答える
1

まず、それを適切な数値に変換する必要があります。

$nums = array_map(function(&$row) {
   return (float) str_replace(',', '',$row['amount']);
}, $records);

次に、次を使用できますarray_sum

echo number_format(array_sum($nums), 2);
于 2012-04-07T21:47:05.293 に答える
1

おそらく次のようなものです:

<?
if(count($records) > 0) {
   $i = $this->uri->segment(3) + 0; 
   $sum_value = 0;
   foreach ($records as $row){ 

      $i++; // Don't know what you use $i for, get rid of it if unnecessary

      // Add value to the sum
      $sum_value += (float)str_replace(",", "", $row["amount"]); 

      // Print the current value
      echo $row['amount'] + "<br/>";

   }

   echo $sum_value;  // Print the total sum after the loop

} else { 
   echo "No Record Found";
} ?>
于 2012-04-07T21:41:17.837 に答える