вот код
$array=array(5,10,122,3,14,10);
$minimum=$array[0];
$maximum=$array[0];
foreach ($array as $key=>$value) {
$sum+=$value;
$max=max($array);
$min=min($array);
if ($array[$key]<$minimum)
$minimum=$key;
if ($array[$key]>$maximum)
$maximum=$key;
}
echo 'sum= ',$sum,
'<br>','max= ',$max,
'<br>','min= ',$min,
'<br>','index min= ',$minimum,
'<br>','index max= ',$maximum;
Спустя 28 минут, 58 секунд (7.04.2011 - 22:34) Mirexzpalich написал(а):
Зачем придумывать велосипед?
$max=max($array);
$min=min($array);
$key_min = array_search($min,$array);
$key_max = array_search($max,$array);
$sum = array_sum($array);
echo 'sum= ',$sum,
'<br>','max= ',$max,
'<br>','min= ',$min,
'<br>','index min= ',$key_min,
'<br>','index max= ',$key_max;
Спустя 1 час, 25 минут, 8 секунд (7.04.2011 - 23:59) XXXcentrixXXX написал(а):
Цитата (Mirexzpalich @ 7.04.2011 - 19:34) |
Зачем придумывать велосипед?
|
спасибо тебе что подсказал эти стандартные функции, но хотелось бы понять почему с моим вариантом не работал.
В с++ сделал все норм, а тут как-то странно
Спустя 13 часов, 22 минуты, 34 секунды (8.04.2011 - 13:22) Mirexzpalich написал(а):
Если тебе хочется без стандартных ф-й, то так:
Удивительно почему в СИ твой код работал....
$array=array(5,10,122,3,14,10);
$min=$array[0];
$max=$array[0];
$min_key=0;
$max_key=0;
$sum= 0;
foreach ($array as $key=>$value) {
$sum+=$value;
if ($value<$min)
{
$min_key=$key;
$min = $value;
}
if ($value>$maximum)
{
$max = $value
$max_key=$key;
}
}
echo 'sum= ',$sum,
'<br>','max= ',$max,
'<br>','min= ',$min,
'<br>','index min= ',$min_key,
'<br>','index max= ',$max_key;
Удивительно почему в СИ твой код работал....
Спустя 12 минут, 25 секунд (8.04.2011 - 13:34) Mirexzpalich написал(а):
Если $minimum и $maximum - это у тебя номара ключей, то зачем ты им передаешь ЗНАЧЕНИЯ первого элемента???
вот гдяли у тебя получается что
$maximum = 5
$minimum = 5
Далее
Зачем-то максимальный и минимальный эл-ты ты определяешь в цикле.... Бред...
смотрим
if ($array[$key]<$minimum)....
берется первый эл-т 5 сравнивается с 5... ничего не происходит...
Далее..
10...122.... 3...
При 3 выполняется условие и $minimum становится равным 3...
Далее... 14...10... Все. Здесь "на шару" "проканало" =)
смотрим
if ($array[$key]>$maximum;)....
берется первый эл-т 5 сравнивается с 5... ничего не происходит...
Далее..
10.. то выполняется условие и maximum становится 1
122... условие сново выполняется (122>1) то maximum становится 2
3.. снова выполняется условие (3>2) то maximum становится 3
14... снова выполняется условие (14>3) то maximum становится 4
10...снова выполняется условие (10>4) то maximum становится 5
=)))))
вот гдяли у тебя получается что
$maximum = 5
$minimum = 5
Далее
foreach ($array as $key=>$value) {
$sum+=$value;
$max=max($array);
$min=min($array);
if ($array[$key]<$minimum)
$minimum=$key;
if ($array[$key]>$maximum)
$maximum=$key;
}
Зачем-то максимальный и минимальный эл-ты ты определяешь в цикле.... Бред...
смотрим
if ($array[$key]<$minimum)....
берется первый эл-т 5 сравнивается с 5... ничего не происходит...
Далее..
10...122.... 3...
При 3 выполняется условие и $minimum становится равным 3...
Далее... 14...10... Все. Здесь "на шару" "проканало" =)
смотрим
if ($array[$key]>$maximum;)....
берется первый эл-т 5 сравнивается с 5... ничего не происходит...
Далее..
10.. то выполняется условие и maximum становится 1
122... условие сново выполняется (122>1) то maximum становится 2
3.. снова выполняется условие (3>2) то maximum становится 3
14... снова выполняется условие (14>3) то maximum становится 4
10...снова выполняется условие (10>4) то maximum становится 5
=)))))
Спустя 3 дня, 2 часа, 24 минуты, 45 секунд (11.04.2011 - 15:59) linker написал(а):
echo 'Min index : ' . min(array_keys($array));
echo 'Max index : ' . max(array_keys($array));