これが本当に基本的な質問である場合はお詫び申し上げます。asort()
多次元配列で動作するように見えることをうっかり発見しました。
サンプル PHP
$animals = array(
1 => array('name' => 'Zebra'),
2 => array('name' => 'Fox'),
3 => array('name' => 'Rabbit'),
4 => array('name' => 'Dog'),
5 => array('name' => 'Cat')
);
asort($animals);
var_dump($animals);
出力
array
5 =>
array
'name' => string 'Cat' (length=3)
4 =>
array
'name' => string 'Dog' (length=3)
2 =>
array
'name' => string 'Fox' (length=3)
3 =>
array
'name' => string 'Rabbit' (length=6)
1 =>
array
'name' => string 'Zebra' (length=5)
なぜこれが機能するのか知りたいですか?
ソートされたフラット配列のみを考えasort()
、多次元配列をソートするには、カスタムソート関数を定義する必要がありました。上記の動作を説明するドキュメントには何も見つかりません。