これ一行でできるんだね。惚れたわ
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]配列を文字列の長さでソートする - スーパーソフトウエア 世界最強のホットテクノロジー - アプリ開発