2012-04-17 6 views
1

Я создал массив данных, из которых я могу циклически перебирать определенные поля и выделять эти значения, но то, что мне нужно сделать, это добавить эти значения в новый массив, в конечном счете позволяя найти среднее значение значений в новом массиве. Как я уже сказал, я могу повторить данные, и я думаю, что я понял, как получить среднее значение, только если я могу создать новый массив! Любая помощь будет принята с благодарностью, поскольку я просто не могу найти ответ нигде, и у меня низкий талант!Добавление данных из массива в новый массив

В моей таблице содержится около 25 полей, которые выводятся из ряда строк на основе переменной сеанса. В экземпляре im, который работает, мне нужно взять только значения из 1 столбца в таблице и добавить их в массив. Код ниже перебрать значения, и эхо их, 1 на время: -

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

Это дает мне 25555, которые являются 4 значения, я бы ожидать, 25, 5, 5, 5

Я попытался

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

Какие результаты в $ cdts быть присвоено значение 5,

Любая помощь очень признателен !!

+0

использование array_push раздвигать элементы в новый массив – nithi

ответ

1

Это позволит получить данные из массива, поместить его в новый и вычислить среднее значение.

$cdtsar = array(); 

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

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

Thank вы очень сильно - я использовал это и включил среднюю сумму, которая была так, как я намеревался найти среднее значение внутри «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

Если вы хотите, чтобы назначить элементы нового использования массива, как этот

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

Чтобы найти среднее значение массива

$sum = array_sum($cdtsar); 
$num = sizeof($cdtsar); 
$avg = $sum/$num; 
echo $avg; 
Смежные вопросы