Clasificación con un módulo

Estoy tratando de ordenar una lista en columnas con uksort.

La matriz ya está ordenada alfa, por lo que es comoarray('A','B','C','D','E','F','G','H','I','J','K','L','M')

Que se muestra en html, como elementos flotantes:

A B C D
E F G H
I J K L
M

Quiero que se reordene para que se muestre así:

A E H K
B F I L
C G J M
D

Así que la matriz ordenada sería:array('A','E','H','K','B','F','I','L','C','G','J','M','D'

Básicamente, lo mismo que Ordenar una lista alfabéticamente con un módulo pero para php. Intenté tomar la solución para javascript y convertirla a php, pero no estoy haciendo nada bien. ¿Alguien tiene alguna idea de cómo hacer esto en php?

Esto es lo que he intentado:

function cmp_nav_by4($a, $b) {
    if (($a % 5) < ($b % 5)) {
        return 1;
    } elseif (($a % 4) > ($b % 4)) {
        return -1;
    } else {
        return $a < $b ? 1 : -1;
    }
}
$result = uksort($thearray, "cmp_nav_by4");

Respuestas a la pregunta(4)

Su respuesta a la pregunta