動かざることバグの如し

近づきたいよ 君の理想に

PHPで文字列の配列を文字数の長さでソートする方法

これ一行でできるんだね。惚れたわ

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]配列を文字列の長さでソートする - スーパーソフトウエア 世界最強のホットテクノロジー - アプリ開発