[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как определить наиболее часто повторяемый элемент
ilfar_sif
Помогите пожалуйста исправить ошибку. Код почему-то неправильно работает. Либо предложите свои варианты.

<?php
$inarray = array(6, 21, 32, 4, 5, 32, 32, 1);
$count = count($inarray);
$tmp=array_count_values($inarray);
ksort($tmp);
array_slice($tmp,0,1);
foreach($tmp as $k=>$v) {
echo "Самый повторяющийся элемент массива: ".$k.". Он повторяется ".$v." раз(а).";
break;
}
?>


Выводит: Самый повторяющийся элемент массива: 1. Он повторяется 1 раз(а).
Правильно должно быть: Самый повторяющийся элемент массива: 32. Он повторяется 3 раз(а).
brevis
ksort -> krsort

_____________
Чатик в телеге
sergeiss
А зачем ты вызываешь ksort()? Распиши словами, что эта функция должна сделать, по твоему мнению.
И зачем тут krsort()?

PS. И также зачем ты вызываешь array_slice?

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
brevis
Ага, не krsort, а arsort конечно же (массив с ловушкой smile.gif ).

А зачем все остальное -- ну наверное автор так видит...

_____________
Чатик в телеге
AllesKlar
ilfar_sif
$inarray = array(6, 21, 32, 4, 5, 32, 32, 1);
$tmp=array_count_values($inarray);
arsort($tmp);
$keys = array_keys($tmp);
echo "Самый повторяющийся элемент массива: ".$keys[0].". Он повторяется ".$tmp[$keys[0]]." раз(а).";


_____________
[продано копирайтерам]
ilfar_sif
всем спасибо. ksort исправил на krsort. С arsort -ом тоже работает.
brevis
Ты все-таки на arsort исправь. Я ж говорю -- массив с ловушкой: у него больше всего раз повторяется именно самый большой элемент. По-этому krsort работет smile.gif

_____________
Чатик в телеге
Быстрый ответ:

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