2012-04-17 16 views
1

特定のフィールドをループしてこれらの値をエコーアウトできるデータ配列を作成しましたが、最終的にこれらの値を新しい配列に追加するだけです新しい配列内の値の平均を見つけることができます。私が言ったように、私はデータをエコーアウトすることができます、私は新しいアレイを作成することができれば平均を得る方法を考え出したと思います!私はちょうど答えを見つけることができないので、どんな助けも大いに評価され、私は才能が低いです!配列から新しい配列にデータを追加する

テーブルには約25個のフィールドがあり、セッション変数に基づいていくつかの行が取り出されます。作業中のインスタンスでは、テーブルの1列の値だけを取り出し、配列に追加する必要があります。値による意志ループ以下のコード、およびそれらをエコー、1時: -

while ($cdarray=mysql_fetch_array($calldata)) { 
echo $cdarray['score_total']; 
} 

これは私に25555を与え、私は25、5、5、5

を期待する4値であり、私は

すべてのヘルプは大歓迎、

の$ CDTSになり5の値を割り当てられている
while ($cdarray=mysql_fetch_array($calldata)) { 
$cdts = $cdarray['score_total']; 
$cdtsar = array($cdts); 
} 

を試してみました!

+0

使用の平均を見つけるために、この

$cdtsar = array(); while ($cdarray=mysql_fetch_array($calldata)) { array_push($cdtsar,$cdarray['score_total']); } 

ように使用する要素を割り当てる場合は、新しい配列 – nithi

答えて

1

これは配列からデータを取得し、新しいものに置き、平均を計算します。

$cdtsar = array(); 

while ($cdarray=mysql_fetch_array($calldata)) { 
$cdtsar[] = $cdarray['score_total']; 
} 

$average = array_sum($cdtsar)/count($cdtsar); 
+0

感謝する要素をプッシュするarray_pushあなたは非常に - 私はこれを使用し、カウントをチェックするために 'if'の中の平均を最初にゼロにすることを意図した平均合計を含めました。 – Ben21

1

それは実際に25と5と5と5を印刷しますが、間にスペースが含まれていないので、「25555」のように見えます。これを自分で確認するには:

while ($cdarray=mysql_fetch_array($calldata)) { 
    echo $cdarray['score_total']; 
    echo "/"; 
} 

は平均値を取得するには、

$sum = $count = 0; 
$average = null; 
while ($cdarray=mysql_fetch_array($calldata)) { 
    $sum += $cdarray['score_total']; 
    ++$count; 
} 

// Make sure to guard against divide by zero 
if ($count) { 
    $average = $sum/$count; 
} 

を使用するか、またはクエリを変更するオプションである場合は、データベースは、あなたのための平均を計算している可能性があります。

+0

ありがとうございます - 自分のゼロガードのバージョンも自分のコードに含めました。 – Ben21

0

新しい配列が配列

$sum = array_sum($cdtsar); 
$num = sizeof($cdtsar); 
$avg = $sum/$num; 
echo $avg; 
関連する問題