PHPで連想配列をソートする
表題の通り。 PHP(というかほとんどのプログラミング言語でそうだと思うが)、漢字でのソーティングは難しい。 そこで、あらかじめ読み型フィールドを連想配列に追加しておき、よみ型でソートする。
以下は、読み仮名を追加して連想配列を追加した際の覚書。
<?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);
?>