PHPで連想配列をソートする
表題の通り。
PHP(というかほとんどのプログラミング言語でそうだと思うが)、漢字でのソーティングは難しい。
そこで、あらかじめ読み型フィールドを連想配列に追加しておき、よみ型でソートする。
以下は、読み仮名を追加して連想配列を追加した際の覚書。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
<?php $supervisors = array( array( "name" => "武井", "yomi" => "たけい", "supervisor" => "takei", ), array( "name" => "田中", "yomi" => "たなか", "supervisor" => "tanaka", ), array( "name" => "浅井", "yomi" => "あさい", "supervisor" => "asai", ), array( "name" => "馬瀬", "yomi" => "ませ", "supervisor" => "mase", ), ); // まずはソート用の配列を下準備。 $sorted_supervisors = array(); foreach ($supervisors as $v) $sorted_supervisors[] = $v['yomi']; print_r($supervisors); // SORT_STRINGでソートルールを指定して、ソーティング array_multisort($sorted_supervisors, SORT_ASC, SORT_STRING, $supervisors); print_r($supervisors); ?> |
この記事へのコメントはこちら