array_count_values
solo funciona para enteros y cadenas. Si le sucede a querer recuentos de valores flotantes/numéricos (y que está sin hacer caso de las pequeñas variaciones en la precisión o representación), esto funciona:
function arrayCountValues($arr) {
$vals = [];
foreach ($arr as $val) { array_push($vals,strval($val)); }
$cnts = array_count_values($vals);
arsort($cnts);
return $cnts;
}
Tenga en cuenta que vuelvo $cnts
con las teclas como cadenas. Sería fácil reconvertirlos, pero estoy tratando de determinar el modo para los valores, por lo que solo tengo que volver a convertir los primeros (varios) valores.
Probé una versión que se realizó un bucle, creando una serie de conteos en lugar de utilizar array_count_values
, y esto resultó ser más eficiente (¡quizás un 8-10%)!
gracias por responder. :) –
¿y si la matriz es multidimensional? –
@OkiErieRinaldi luego OP necesita actualizar la pregunta. – James