読者です 読者をやめる 読者になる 読者になる

配列のソート

配列の比較は、まず配列の要素数の大小を比較する。 このおかげでソートが自分の期待通りに行かないということがわかった。

次の配列をソートする場合を考える。

<?php
$items = array(
    array("Z", "X"),
    array("A", "B", "C"),
    array("A", "D"),
);

ソートした結果の期待値はこうだ。

<?php
array(
    array("A", "B", "C"),
    array("A", "D"),
    array("Z", "X"),
);

配列の先頭の値から順に(キーに関わらず)大小関係を比較していきたい。 でも、sort() を使ってソートするとこうなる。

<?php
array(
    array("A", "D"),
    array("Z", "X"),
    array("A", "B", "C"),
);

というわけで、期待通りの結果を返すソート関数を作成した。コードはこちら