/** * Sorts array by string length. * * From shortest to longest: `return ( strlen( $a ) - strlen( $b ) );` * From longest to shortest: `return ( strlen( $b ) - strlen( $a ) );` * * @see https://wpcodebook.com/sort-array-string-length-php/ * @see https://www.php.net/manual/en/array.sorting.php * @see https://www.php.net/manual/en/function.usort.php * @see https://www.php.net/manual/en/function.strlen.php */ function wpcodebook_sort_by_string_length( &$data ) { usort( $data, function ( $a, $b ) { return ( strlen( $b ) - strlen( $a ) ); } ); }
Example
$example_array = array( 'Lorem', 'ipsum', 'dolor', 'sit', 'amet', 'consectetur', 'adipiscing', 'elit', 'sed', 'do', 'eiusmod', 'tempor', 'incididunt', 'ut', 'labore', 'et', 'dolore', 'magna', 'aliqua', ); wpcodebook_sort_by_string_length( $example_array ); echo '<pre>' . print_r( $example_array, true ) . '</pre>';
Output:
Array ( [0] => consectetur [1] => adipiscing [2] => incididunt [3] => eiusmod [4] => tempor [5] => labore [6] => dolore [7] => aliqua [8] => Lorem [9] => ipsum [10] => dolor [11] => magna [12] => amet [13] => elit [14] => sit [15] => sed [16] => do [17] => ut [18] => et )