Есть массив. Надо посчитать сумму элементов в нем, не учитывая максимальное и минимальное значение.
Вот что я сделал.
Работает все прекрасно, но кода ставишь два одинаковых элемента например 8 и 8 то при выводе print_r($arr) высвечивается массив как надо Array ( [0] => 145 [1] => 21 [3] => 8 ) то сумма почему то без учета одной восьмерки.
$arr = array(145, 21, 8, 8, 501);
//поиск минимумов и максимумов
$min = $max = $arr[0];
$index_min = $index_max = 0;
for ($i=1; $i<count($arr); $i++) {
if ($arr[$i] > $max) {
$index_max = $i;
$max = $arr[$i];
} else
if ($arr[$i] < $min) {
$index_min = $i;
$min = $arr[$i];
}
}
// END поиск минимумов и максимумов
$sum1 = 0;
for ($m=0; $m<count($arr); $m++) {
$sum1 += $arr[$m];
}
//echo '<p>min '.$arr[$index_max].' = '.$max;
//echo '<br>max '.$arr[$index_min].' = '.$min.'</p>';
unset($arr[$index_max]);
unset($arr[$index_min]);
$sum2 = 0;
for ($n=0; $n<count($arr); $n++) {
$sum2 += $arr[$n];
}
echo '<br>После обработки = '.$sum_final;
Вот результат
Array ( [0] => 145 [1] => 21 [2] => 8 [3] => 8 [4] => 501 )
До обработки = 683
Array ( [0] => 145 [1] => 21 [3] => 8 )
После обработки = 166
_____________
..Работает - не трогай!