3 наибольших числа из асс. массива

Тема в разделе "PHP", создана пользователем yeaahhh, 19 сен 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. yeaahhh

    yeaahhh

    Регистр.:
    8 май 2008
    Сообщения:
    278
    Симпатии:
    11
    Ребят, добрый день. Не подскажете, как вытянуть 3 наибольших значения(числа) из ассоциативного массива?
    PHP:
    $occc = array("Весёлый" =>"".$oc['funny']."","Гостеприимный" => "".$oc['hospitable']."","Добрый" => "".$oc['good']."","Дружелюбный" =>"".$oc['friendly']."","Жадный" =>"".$oc['greedy']."","Жизнерадостный" =>"".$oc['cheerful']."","Заботливый" =>"".$oc['thoughtful']."","Завистливый" =>"".$oc['envious']."","Застенчивый" =>"".$oc['shy']."","Злой" =>"".$oc['angry']."","Интересный" =>"".$oc['interesting']."","Искренний" =>"".$oc['sincere']."","Красивый" =>"".$oc['beautiful']."","Ленивый" =>"".$oc['lazy']."","Надёжный" =>"".$oc['safe']."","Нудный" =>"".$oc['boring']."","Общительный" =>"".$oc['sociable']."","Остроумный" =>"".$oc['witty']."","Отзывчивый" =>"".$oc['responsive']."");
    arsort($occc);
    foreach(
    $occc as $key => $val
       {
          echo (
    $key => $val ");
    echo 
    "<br />";
       }
    Все переменные из запроса - числовые.. т.е. вот что на выходе:
    Отзывчивый => 18
    Интересный => 16
    Общительный => 15
    Остроумный => 14

    Иными словами, нужно как-то поставить break.. А как правильно это делается?

    Заранее спасибо

    ---------- Post added at 16:26 ---------- Previous post was at 14:45 ----------

    Проблему решил. Спасибо
     
  2. Super_BOT

    Super_BOT

    Регистр.:
    21 апр 2009
    Сообщения:
    256
    Симпатии:
    28
    Могу предложить такой способ, создать два массива, в одном хранить ключи, а во втором числа которые соответствуют ключам, через цикл foreach скопировать все данные в эти массивы, далее отсортировать оба, по возрастанию (оба массива), и вывести первые три числа.
     
  3. Google.com

    Google.com Читатель

    Заблокирован
    Регистр.:
    16 фев 2010
    Сообщения:
    250
    Симпатии:
    295
    PHP:
    $occc = array("Весёлый" =>"".$oc['funny']."","Гостеприимный" => "".$oc['hospitable']."","Добрый" => "".$oc['good']."","Дружелюбный" =>"".$oc['friendly']."","Жадный" =>"".$oc['greedy']."","Жизнерадостный" =>"".$oc['cheerful']."","Заботливый" =>"".$oc['thoughtful']."","Завистливый" =>"".$oc['envious']."","Застенчивый" =>"".$oc['shy']."","Злой" =>"".$oc['angry']."","Интересный" =>"".$oc['interesting']."","Искренний" =>"".$oc['sincere']."","Красивый" =>"".$oc['beautiful']."","Ленивый" =>"".$oc['lazy']."","Надёжный" =>"".$oc['safe']."","Нудный" =>"".$oc['boring']."","Общительный" =>"".$oc['sociable']."","Остроумный" =>"".$oc['witty']."","Отзывчивый" =>"".$oc['responsive']."");
    arsort($occc);
    $i=0;
    foreach(
    $occc as $key => $val){
       if (
    $i<3){
         echo (
    $key => $val ");
         echo 
    "<br />";
       }else{
           break;
       }
       
    $i=$i+1;

    }
     
  4. Sold

    Sold Писатель

    Регистр.:
    24 сен 2010
    Сообщения:
    2
    Симпатии:
    0
    PHP:
    $sorted asort($array);
    $try  =0$lagest = array();
    while(
    $try<3)
    {
      
    $lagest[]=array_shift($sorted); $try++;
    }

     
  5. horpah

    horpah

    Регистр.:
    21 июн 2010
    Сообщения:
    200
    Симпатии:
    55
    $sorted = asort($array);
    $your_array=array_slice($sorted,0,3,true) - если ключи не надо, 4-й параметр можно опустить
     
Статус темы:
Закрыта.