array_count_values
funziona solo per numeri interi e stringhe. Se vi capita di voler conteggi per valori float/numerici (e siete incuranti delle piccole variazioni di precisione o rappresentazione), questo funziona:
function arrayCountValues($arr) {
$vals = [];
foreach ($arr as $val) { array_push($vals,strval($val)); }
$cnts = array_count_values($vals);
arsort($cnts);
return $cnts;
}
Nota che torno $cnts
con i tasti come stringhe. Sarebbe facile riconvertirli, ma sto cercando di determinare la modalità per i valori, quindi devo solo riconvertire i primi (diversi) valori.
Ho testato una versione in loop, creando una serie di conteggi invece di utilizzare array_count_values
, e ciò si è rivelato più efficiente (forse dell'8-10%)!
grazie per aver risposto. :) –
cosa succede se la matrice è multidimensionale? –
@OkiErieRinaldi quindi OP deve aggiornare la domanda. – James