これ一行でできるんだね。惚れたわ
usort($a, create_function('$a,$b', 'return mb_strlen($a, "UTF-8") - mb_strlen($b, "UTF-8");'));
サンプル
<pre> <?php $a = array( "aa", "aaaa", "a", "aaa" ); usort($a, create_function('$a,$b', 'return mb_strlen($a, "UTF-8") - mb_strlen($b, "UTF-8");')); var_dump($a);
実行するとちゃんとソートされて文字列の短い順になっていることがわかる。
array(4) {
[0]=>
string(1) "a"
[1]=>
string(2) "aa"
[2]=>
string(3) "aaa"
[3]=>
string(4) "aaaa"
}
文字列の長い順にソートしたい場合は?
単純に$aと$bを入れ替えてあげるだけ。
参考リンク:
[PHP]配列を文字列の長さでソートする - スーパーソフトウエア 世界最強のホットテクノロジー - アプリ開発