Я знаю код ниже
<?php
$array = array("1", "hello", "1", "world", "hello");
print_r(array_count_values($array));
?>
Вывод:
Array
(
[1] => 2
[hello] => 2
[world] => 1
)
Я хотел бы получить значение, которое было повторено больше всего, или если повторяются несколько совпадающих экземпляров, которые чаще повторяются, например, "привет" и "1" рандомизируют их вместо того, чтобы извлекать первый.
Live: http://ideone.com/D1Ydbd
$array = array(1, "hello", 1, "world", "hello",'2','2','2','3','3','3');
$s = array_count_values($array);
$mostRepeated = max($s);
$s = array_filter( $s, function($v) use ($mostRepeated) {
return $v==$mostRepeated;
});
print_r($s);
echo array_rand($s); // randomized
Шаг:
array_rand
Обратите внимание, что я написал эту функцию прозрачно всякий раз, когда есть одна или несколько записей с одинаковым количеством значений.