2006/04/23(日)

PHPで多次元配列をソート。

カテゴリー: PHP — KAY @ 10:12:55

俺様用メモ。

$arr = array(
    array("0", "2"),
    array("2", "0"),
    array("2", "1"),
    array("1", "2"),
    array("0", "2"),
    array("1", "1"),
    array("0", "0"),
    array("0", "1"),
    array("2", "2"),
    array("1", "0")
);

usort($arr, create_function('$a, $b', 'return ($a[0] < $b[0])? -1: (($a[0] == $b[0])? (($a[1] > $b[1]? -1: (($a[1] == $b[1])? 0: 1))): 1);'));
print_r($arr);

結果:

Array
(
    [0] => Array([0] => 0, [1] => 2)
    [1] => Array([0] => 0, [1] => 2)
    [2] => Array([0] => 0, [1] => 1)
    [3] => Array([0] => 0, [1] => 0)
    [4] => Array([0] => 1, [1] => 2)
    [5] => Array([0] => 1, [1] => 1)
    [6] => Array([0] => 1, [1] => 0)
    [7] => Array([0] => 2, [1] => 2)
    [8] => Array([0] => 2, [1] => 1)
    [9] => Array([0] => 2, [1] => 0)
)

こういう可読性の低いコード書いて、毎回後から後悔するんですが。