は次のように多次元配列を考える:ソートPHP multidimesional配列:1つの昇順、1つのカスタム
$data = array (
[0] => array('aDate' => '2016-01-10', 'tType' => 'Added'),
[1] => array('aDate' => '2016-01-20', 'tType' => 'RtrnCap'),
[2] => array('aDate' => '2016-01-20', 'tType' => 'Removed'),
[3] => array('aDate' => '2016-01-30', 'tType' => 'RtrnCap')
);
どこソートを:
$data = array (
[0] => array('aDate' => '2016-01-10', 'tType' => 'Added'),
[1] => array('aDate' => '2016-01-30', 'tType' => 'RtrnCap'),
[2] => array('aDate' => '2016-01-20', 'tType' => 'Removed'),
[3] => array('aDate' => '2016-01-20', 'tType' => 'RtrnCap')
);
私はこれを取得するには、この配列をソートするにはどうすればよいです最初はaDate
の昇順になり、2番目の並べ替えはtType
というカスタムが次の順序でソートされます。Added、RtrnCap、Removed。
this SO questionのような複数のキーを使用して解決策を探し、this SO questionのような(匿名関数を使用して)usortを使用して、1つのカスタムキーをソートしました。これらはそれぞれソリューションの半分に過ぎません。 TWOソートの例では、通常の昇順または降順ソート順が使用されています(カスタム注文にする必要があります)。カスタムのusortの例は正常に動作しますが、唯一の値のセットです。
ボトムライン:私は2つの並べ替えが必要です。最初の並べ替えは、日付の昇順、2番目のカスタムです。
@deceze作成したリソースを確認しました。それは包括的ですが、私は一緒にしようとしている2つの種類の組み合わせを見ていませんでした。トピックに私の新しいことを許してください、しかし私は2つの異なる種類を一緒に入れて助けを必要とします。 – globalSchmidt
2つの条件による並べ替えは、**複数のフィールドによる並べ替え**セクションで説明されています。事前定義された順序での並べ替えについては、**手動の静的な並べ替え**を参照してください。これらの2つの手法を組み合わせるだけです。あなたの最善の試みと、それを実装する際の具体的な問題点を示してください。 – deceze