2016-09-26 5 views
1

値がnullでない列から値を選択することから始めます。 この値はfloatであることに注意してください。PHPで配列を使った数学演算

$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"; 
} 

サンプル:

Iは$cf_user(0.2、0.4および0.6)から3の値を有し、$cf_pakar(1、1、1)、 次いで、$gejala 3件の結果が表示されます。

$cf_user*$cf_pakar = foreachを使用してエコーすると、0.2,0.4および0.6となります。

問題がある:

私は$gejalaに持っているものである:(0.20.40.6)結果の配列として。 のカウントが$gejalaの場合、値は1で、値はfloatです。

どのように結果を分離しますか?私はそれぞれの結果の文字がある別の数学演算を持っているからです。

答えて

1

。これは、所望の効果を提供しない可能性がある。代わりに、このオプションを考えてみましょう:

<?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); 
+0

は[0] '結果はまだ1カウント0.20.40.6' $のgejala結果はまだ同じ、動作しません。 '$ gejala [1]'はエラーです。別の操作を行うために有効な3つの結果が必要です。あなたは何を言っていますか? –

+0

@RyanRizqi Doubtful .... – Poiz

+0

私はimplodeとexplodeを使用しようとしていますが、結果を配列で分けることはできませんでした。まだカウント1 –

0

現在の方法では、各繰り返しで$gejalaを上書きします。代わりに[]演算子を使用して、乗算の結果を配列に追加します。 $gejala = array($cf_pakar * $cf_user);あなたは、単に新しい配列を作成し、そのため、あなたのループに各反復で$gejalaを上書きされていますラインで

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