[php] сравнить значения в массиве, туплю

И всё прочее, что касается HTML
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

[php] сравнить значения в массиве, туплю

Непрочитанное сообщение Alex Keda » 2011-10-07 13:12:52

есть массив, типа

Код: Выделить всё

Array(
1 => 5.34,
2 => 7.43,
3 => 0.01
);
надо найти ключ наименьшего значения
т.е. в данном примере, мне нужна цифра 3

чё-то даже не соображу =(
Убей их всех! Бог потом рассортирует...

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: [php] сравнить значения в массиве, туплю

Непрочитанное сообщение Alex Keda » 2011-10-07 13:51:37

Код: Выделить всё

$b = max($array);

foreach ($array as $key => $value)
{
        if($value < $b){
                $id = $key;     
                $b = $value;
        }
}
echo "\n" . $id . "\n";
такую вот кривизну пока нарисовал....
Убей их всех! Бог потом рассортирует...

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: [php] сравнить значения в массиве, туплю

Непрочитанное сообщение hizel » 2011-10-07 14:25:14

мдэ, а почему не min? что делать если наименьших значений несколько? http://php.net/manual/ru/function.min.php см. комментарии
например этот: http://www.php.net/manual/ru/function.min.php#100899
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: [php] сравнить значения в массиве, туплю

Непрочитанное сообщение Alex Keda » 2011-10-07 14:47:57

min - вернёт значение
мне нужен - именно ключ
--
это из балансировки нагрузки по серверам - ключ - идентификатор сервера, значнеие - нагрузка....
Убей их всех! Бог потом рассортирует...

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: [php] сравнить значения в массиве, туплю

Непрочитанное сообщение hizel » 2011-10-07 15:08:46

Alex Keda писал(а):min - вернёт значение
мне нужен - именно ключ
мда, что-то тупишь ты основательно сейчас, я не сообщал о том, что min полностью решит твою проблему
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: [php] сравнить значения в массиве, туплю

Непрочитанное сообщение hizel » 2011-10-07 15:51:00

и вообще зачем max\min

Код: Выделить всё

$b = $array[0];

foreach ($array as $key => $value)
{
        if($value < $b){
                $id = $key;     
                $b = $value;
        }
}
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: [php] сравнить значения в массиве, туплю

Непрочитанное сообщение Alex Keda » 2011-10-07 16:57:45

я не знаю ни одного элемента из массива.
поэтому

Код: Выделить всё

 $b = $array[0];
может оказаться пустым, или, приведя к числовому значению - ноль.
что автмоатически привдёт к неверному выбору
Убей их всех! Бог потом рассортирует...

Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

Re: [php] сравнить значения в массиве, туплю

Непрочитанное сообщение FreeBSP » 2011-10-07 20:04:21

Код: Выделить всё

<?php

    if (isset($array) && count($array)) {
       $k  = array_search(min($array)); // ключ первого минимального
       $ka = return array_keys($array, min($array)); // массив ключей с минимальными значениями
    } else {
        $k  = false;
        $ka = false;
    }

    if ($k === false) {
        //массив не существует, или пуст
    }
?>
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!

rmn
старшина
Сообщения: 427
Зарегистрирован: 2008-10-03 18:52:02

Re: [php] сравнить значения в массиве, туплю

Непрочитанное сообщение rmn » 2011-10-07 20:09:54

отсортировать массив с учетом ключей (asort, вроде) и читать сервера с минимальной загрузкой по порядку с 0-вого

Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

Re: [php] сравнить значения в массиве, туплю

Непрочитанное сообщение FreeBSP » 2011-10-07 20:16:36

вариант, но это будет уже не исходный массив так что ТЗ немного не соотествует
да и опять же проблема пустого массива
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: [php] сравнить значения в массиве, туплю

Непрочитанное сообщение Alex Keda » 2011-10-07 22:44:38

пустого быть не может - это эксцепшеном строк на 50 раньше отрботает =))
Убей их всех! Бог потом рассортирует...

PYO
сержант
Сообщения: 187
Зарегистрирован: 2011-08-18 12:46:45

Re: [php] сравнить значения в массиве, туплю

Непрочитанное сообщение PYO » 2011-10-08 0:23:34

Alex Keda писал(а):я не знаю ни одного элемента из массива.
поэтому

Код: Выделить всё

 $b = $array[0];
может оказаться пустым, или, приведя к числовому значению - ноль.
что автмоатически привдёт к неверному выбору

Код: Выделить всё

$b = reset($array);


zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: [php] сравнить значения в массиве, туплю

Непрочитанное сообщение zg » 2014-11-19 21:14:02

Код: Выделить всё

$array = [
    1 => 5.34,
    2 => 7.43,
    3 => 0.01
];

asort($array);

var_dump( key($array) ); // int(3)