$unsorted = [ "tree",1,"cat",2,"melons",3];
$f = new NumberFormatter("en", NumberFormatter::SPELLOUT);
$formatted = array_map( function( $v ) {
if ( is_numeric( $v ) ) {
return $f->format( $v );
}
return $v;
}, $unsorted );
$final = array_combine( $unsorted, $formatted );
usort( $final, function( $a, $b ) {
return strcmp($a, $b);
} );