在php中使用数组进行数学运算

时间:2016-09-26 16:28:26

标签: php mysql arrays math

首先从值为空的列中选择值。 请注意,该值为float。

$sql = "SELECT cf_user, cf_pakar FROM chevy.gejala1 WHERE cf_user != 'null' and cf_pakar != 'null'";
$result = $conn->query($sql);

之后,我把它放在数组变量中,然后用它做数学运算。

if ($result->num_rows > 0 ) {
    // output data from each row
    while($row = $result->fetch_assoc()) {
        $cf_user =$row["cf_user"] ;
        $cf_pakar = $row["cf_pakar"];
        $gejala = array ($cf_pakar*$cf_user);
    }
} else {
    echo "0 results";
}

示例:

我有$cf_user(0.2,0.4和0.6)和$cf_pakar(1,1和1)的3个值, 然后,$gejala将显示3个结果。

当我使用$cf_user*$cf_pakar回音时,

foreach = 0.2,0.4和0.6。

问题是:

我在$gejala中的内容是:(0.20.40.6)作为结果数组。 $gejala的计数为1,值为float。

如何分离结果?因为我对每个结果字母都有另一个数学运算。

2 个答案:

答案 0 :(得分:1)

  

使用行$gejala = array($cf_pakar * $cf_user);,您只需创建一个新数组,从而在每次迭代时将$gejala覆盖到循环中。这可能无法提供所需的效果。请考虑使用此选项:

<?php

    // CREATE AND INITIALIZE A NEW ARRAY TO AN EMPTY VALUE.
    $gejala     = array();

    if ($result->num_rows > 0 ) {           
        while($row = $result->fetch_assoc()) {
            $cf_user    = $row["cf_user"] ;
            $cf_pakar   = $row["cf_pakar"];
            // NOW PUSH THE RESULT OF YOUR MATH OPERATION, 
            // TO THE ARRAY WITH EACH ITERATION:
            $gejala[]   = round( (cf_pakar*$cf_user), 1);
        }
    } else {
        echo "0 results";
    }
    var_dump($gejala);
  

或者简单地说:

<?php

    // CREATE AND INITIALIZE A NEW ARRAY TO AN EMPTY VALUE.
    $gejala     = array();

    if ($result->num_rows > 0 ) {           
        while($row = $result->fetch_assoc()) {
            // NOW PUSH THE RESULT OF YOUR MATH OPERATION, 
            // TO THE ARRAY WITH EACH ITERATION:
            $gejala[]   = round( ($row["cf_user"]*$row["cf_pakar"]), 1);
        }
    } else {
        echo "0 results";
    }
    var_dump($gejala);

答案 1 :(得分:0)

您目前的方式会在每次迭代时覆盖$gejala。使用[]运算符将乘法结果附加到数组中。

while($row = $result->fetch_assoc()) {
    $cf_user =$row["cf_user"] ;
    $cf_pakar = $row["cf_pakar"];
    $gejala[] = $cf_pakar * $cf_user;
}