2017-10-01 3 views
1

私は、最高給与でソートする必要があるオブジェクトの配列を持っています。私は、ユーザー定義のソート機能を使用する必要があるが、どちらをどのように行うのかは不明です。ここに私の配列です:オブジェクトの配列の値の高い方から低い方への並べ替え

array(4) { 
    [0]=> 
    object(Employee)#1 (6) { 
    ["name"]=> 
    string(5) "Pesho" 
    ["salary"]=> 
    string(6) "120.00" 
    ["position"]=> 
    string(3) "Dev" 
    ["department"]=> 
    string(11) "Development" 
    ["email"]=> 
    string(12) "[email protected]" 
    ["age"]=> 
    int(28) 
    } 
    [2]=> 
    object(Employee)#3 (6) { 
    ["name"]=> 
    string(4) "Ivan" 
    ["salary"]=> 
    string(6) "840.20" 
    ["position"]=> 
    string(13) "ProjectLeader" 
    ["department"]=> 
    string(11) "Development" 
    ["email"]=> 
    string(13) "[email protected]" 
    ["age"]=> 
    int(-1) 
    } 
} 

イワンはペショの前にする必要があります。

答えて

0
usort($array, function($a, $b) { 
    if ($b == $a) { 
     return 0; 
    } 
    return ($b < $a) ? -1 : 1; 
}); 

usort - 誰かがあなたをdownvoteする理由私にはわからないが、これは実際に動作するユーザー定義の比較関数

+0

を使用して、配列を値でソートします。私はまだ1つの減算がどのように役立つのか理解できません。何でもありがとう! – pidari

+0

これは部分的な違いには機能しません。たとえば、「840.80」と「840.20」は0.60を返します。これは比較のゼロ戻り値としてカウントされます(つまり、2つの値が同じ値として比較されます)。 – salathe

+0

@salathe私はそれを知らなかった、私は答えを修正します。 – Dmitry

関連する問題