2016-08-13 10 views
0

$productsと呼ばれるコレクションがあり、それぞれのインスタンスにはフィールドcreated_atが含まれています。後者は明らかにDBにフォーマット('Y-m-d H:i:s')を持っています。ユニークなインスタンスを取得するのが簡単ですcreated_at。しかし、ユニークな年値created_atの単一表現(私は私の意見で書くことができます)に取り戻したいと思います。私は何を探していますは、次のとおりです。['2012', '2013', '2016']created_atから一意の年の値を取得する方法は?

$products->unique(year value ('Y' ONLY) of 'created_at') 

この表現は、このような何かに評価する必要があります。

+3

あなたは '$独特= $製品 - >ユニーク(関数($アイテム){ リターン$アイテム[ 'created_atと'] - >年; });試してみましたが、' –

+0

@Angad Dubeyさんは、ハック見えます私の例ではうまくいくだろう;)ネイティブPHPの日付メソッドを使用したいと思うかもしれないが、それと同様のもの – Alex

+0

これは正しいAngardだ。 – whoan

答えて

1

一意のタイムスタンプを持つコレクションを提供するコメントに基づいて、年をマップし、次のコードで並べ替えることができます。

$years = $products->unique(function($item){ 
    return $item['created_at']->year; 
})->map(function($item){ 
    return $item['created_at']->year; 
})->sort()->toArray(); 
関連する問題