За последние 24 часа нас посетил 17871 программист и 1716 роботов. Сейчас ищут 927 программистов ...

Как определить наиболее часто повторяемый элемент массива?

Тема в разделе "Прочие вопросы по PHP", создана пользователем Ilfar_sif, 25 мар 2015.

  1. Ilfar_sif

    Ilfar_sif Новичок

    С нами с:
    25 мар 2015
    Сообщения:
    3
    Симпатии:
    0
    Помогите найти ошибку, либо написать другой код.
    Код (Text):
    1.  
    2. <?php
    3. $inarray = array(6, 2, 3, 4, 5, 3, 3, 1);
    4. $tmp=array_count_values($inarray);
    5. ksort($tmp);
    6. array_slice($tmp,0,1);
    7. foreach($tmp as $k=>$v) {
    8. echo "Самый повторяющийся элемент массива: ".$k.". Он повторяется ".$v." раз.";
    9. break;
    10. }
     
  2. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    Re: Как определить наиболее часто повторяемый элемент массив

    А что в твоем супер коде не так
     
  3. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    Re: Как определить наиболее часто повторяемый элемент массив

    arsort($tmp,SORT_NUMERIC);
    вместо ksort(); ибо он сортирует по ключам а не по значениям
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  5. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    Re: Как определить наиболее часто повторяемый элемент массив

    как поможет max() в данном случае?
     
  6. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Re: Как определить наиболее часто повторяемый элемент массив

    runcore не поможет, поспешил
     
  7. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    Код (PHP):
    1. <?php
    2.  
    3. $inarray = array(6, 2, 3, 4, 5, 3, 4, 3, 1, 3);
    4. $tmp=array_count_values($inarray);
    5. var_export($tmp);
    6. echo "\n";
    7. arsort($tmp);
    8. var_export($tmp);
    9. echo "\n";
    10. echo reset($tmp)." time(s) counted the value of ".key($tmp)."\n"; 
    результат:

    Код (Text):
    1. array (
    2.   6 => 1,
    3.   2 => 1,
    4.   3 => 4,
    5.   4 => 2,
    6.   5 => 1,
    7.   1 => 1,
    8. )
    9. array (
    10.   3 => 4,
    11.   4 => 2,
    12.   1 => 1,
    13.   5 => 1,
    14.   2 => 1,
    15.   6 => 1,
    16. )
    17. 4 time(s) counted the value of 3
     
  8. Ilfar_sif

    Ilfar_sif Новичок

    С нами с:
    25 мар 2015
    Сообщения:
    3
    Симпатии:
    0
    Re: Как определить наиболее часто повторяемый элемент массив

    всем спасибо. ksort исправил на krsort. Ошибка была в невнимательности.
     
  9. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    Re: Как определить наиболее часто повторяемый элемент массив

    facepalm