$dataarray[0] = array("keyA" => "abc","keyB => 99); $dataarray[1] = array("keyA" => "def","keyB => 50); $dataarray[2] = array("keyA" => "ghi","keyB => 70);
などという配列を入れ子になっている”keyB”で並べたい場合は、sortやksortではなく、array_multisortを使います。
例として、上記配列の”keyB”で並べ直す場合は、以下のようになります。
foreach($dataarray as $key => $row){ $temp[$key] = $row["keyB"]; } array_multisort($temp,SORT_DESC,$dataarray);
仮の配列($temp)を作ってそれを元に配列を並べ直す感じです。このときオプションで渡されるSORT_DESCによって$tempの内容がソートされ、それに従って元の配列がソートされます。
さらに配列のキーを複数持つことも可能ですが、詳しくはPHPのマニュアルをごらんください。