Ordenar array por tamanho em php

Três meios diferentes para a mesma finalidade:

Usando funções nativas do PHP (recomendado):

array_multisort(array_map('strlen', $array), $array);

Esse é compatível com versões antigas do PHP:

usort($array, 'sortByLength');

private static function sortByLength($a, $b) {
    $difference =  strlen($a) - strlen($b);
    return $difference ?: strcmp($a, $b);
}

E esse pra PHP7+:

usort($array, 'sortByLength');

private static function sortByLength($a, $b) {
    return strlen($b) <=> strlen($a);
}