2017-10-25 10 views
1

私のコードでは、私はコレクションオブジェクトを持っています。 iが値としてJSON文字列を有するrateと呼ばれるキーを有する上記の例でLaravelのjson属性によるコレクションの注文方法

"id" => 1 
"rate" => "{"p_1":"1","p_2":"2","p_3":"2.3","p_4":"3.5"}" 
"currency" => 1 
"desc" => "TEST" 

を次のようにコレクションオブジェクトの一部が構成されています。

私がしたいのは、rangeキーに含まれている値p_1でコレクションオブジェクトを並べ替えることです。

+0

あなたの質問は不明です。どのようにして 'レート'に 'p_1'を注文したいですか? –

+0

どのLaravelのバージョンを使用していますか? – Jerodev

+0

@NicolaWorthington私はコレクションのすべてのオブジェクトをp_1で注文したいと思います。 –

答えて

0

使用sortBy()がここ$collection

$collection->sortBy(function($item) { 
    return $item->rate->p_1; 
}); 

がデフォルトで提供しますあなたのlaravel結果であるlaravelでコレクションをソートするためには、明示的に詳細

のため collect方法だけでなく

チェックdocsを使用して変換することができます

1

注文する前にJSON文字列をデコードする必要があります。

$collection->sortBy(function(array $item) { 
    return json_decode($item->rate)->p_1; 
}); 
関連する問題