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); }