2017-07-03 15 views
-1

forまたはforeachループを使用せずに、オブジェクト型の配列を並べ替えることができる直接的な方法です。リファレンスコンテンツコードは次のとおりです。オブジェクト型配列の逆ソート

Array 
(
    [0] => stdClass Object 
     (
      [Date] => 20170820 
     ) 

    [1] => stdClass Object 
     (
      [Date] => 20170817 
     ) 

    [2] => stdClass Object 
     (
      [Date] => 20170711 
     ) 

    [3] => stdClass Object 
     (
      [Date] => 20170710 
     ) 

) 

答えて

1

あなたは単にusort()を使用してソートするための独自のロジックを使用することができます。

usort($array, function($a, $b) { 
    return $a->Date > $b->Date ? +1 : -1; 
}); 

また、逆の順序を使用する場合は、スワップ+1/-1を指定します。

+0

なぜ 'krsort()'や 'rsort()' @ this.lau_? – Anonymous

+0

見た目からは、オブジェクトの配列があり、任意のプロパティでソートしたいので、krsortまたはrsort(キーまたはインデックスでソート)では機能しません。 –

+0

彼は、配列を逆ソートしたいと言った。 – Anonymous

0

krsort($array)を使用すると、キーを逆順に並べ替えることができます。 を使用して、配列を値の逆の順序でソートします。

0

これはよろしい

あなたが行うことができます
//Example with array $a 
$a = array(array('date'=>20170820),array('date'=>20170817),array('date'=>20170711),array('date'=>20170710)); 
$a = json_decode(json_encode($a)); 

usort($a, function($x,$y){ return $x->date - $y->date; }); 
print_r($a); 
関連する問題