[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Массив
XXXcentrixXXX
подскажите в чем проблема при выводе максимального индекса массива, при выводе минимального элемента все отлично работает, а вот с максимальным какую-то ерунду выводит.
вот код
$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)
Зачем придумывать велосипед?


$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;

спасибо тебе что подсказал эти стандартные функции, но хотелось бы понять почему с моим вариантом не работал.
В с++ сделал все норм, а тут как-то странно

Спустя 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

Далее

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));
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.