2015-02-01 2 views
0

Я пытаюсь добавить некоторые цифры в foreach loop в свой PHP-код. Я получаю percentage чисел в while loop в моем запросе MySQL для каждого результата, который я получаю на своей странице PHP.Добавить числа в a для каждого PHP?

Все, что мне нужно сделать, это добавить окончательные значения и показать их как итоговые.

Это, как я составляю процент в моем цикле в то время как мой запрос MySQL:

$percentage = 10; 
$totalWidth = $fees; 

$new_width = ($percentage/100) * $totalWidth; 

Значение $fees является динамическим и оно отличается для каждого результата в моем цикле. приведенный выше код работает так, как должен.

Теперь я хочу добавить все значения $new_width. Например:

Если один результат в $ new_width составляет 25, а другой 10, а другой является 5, мне нужно сделать это: $total = 25 + 10 + 5;

Так что я пытался что-то вроде этого:

$total = 0; 

foreach($new_width as $var) { 
    $total = $var + $var; 
} 

echo $total; 

, но приведенный выше код не имеет смысла, и он ничего не сделает.

Может кто-нибудь проконсультироваться по этому вопросу?

+0

Установите '$ total' в 0 перед вашим циклом while. Когда вы сгенерировали '$ new_width', добавьте это значение в' $ total'. Вам не нужна эта вторая петля foreach. – andrewsi

+0

Если вы еще этого не видели, вы можете совершить экскурсию здесь: http://stackoverflow.com/tour и посмотреть, как работает этот сайт! – Rizier123

+0

Вы переопределяете $ total внутри цикла 'foreach', таким образом, реселлизируя каждый раз, когда –

ответ

1

Сначала вы хотите изменить эту строку в цикле в то время, так что вы получите массив:

$new_width = ($percentage/100) * $totalWidth; 

к этому:

//Declare it as an array before your while loop 
$new_width = array(); 
//In your while loop 
$new_width[] = ($percentage/100) * $totalWidth; 
     //^^ See here 

После этого вы просто должны изменить строку в Еогеасп цикл, как это:

$total = $var + $var; 

к этому:

$total += $var; 

(Если вы хотите, вы также можете сделать это в цикле While)

1

Если у вас есть массив чисел, и вы хотите, чтобы вычислить сумму этих чисел, вы должны использовать array_sum().

0

Согласно логике, вы устанавливаете общее значение 2 X $ var.

Мой ответ очень похож, но добавить его в общей сложности, которая находится за пределами цикла, и значение будет продолжать расти:

$total = 0; 

foreach($new_width as $var) { 
    $total += $var; 
} 

echo $total; 

Или просто как указано ранее, если это единственное значение массив:

$total = array_sum($new_width); 
Смежные вопросы