Laravelで配列をコレクションに変換する



Convert Array Collection Laravel



解決:

編集;この質問はタイトルに基づいて多くのヒットを得ていることを理解しているので、それらの人々のためのTLDRはコレクションインスタンスを作成するためのcollect()ヘルパー。質問者の概要に答えて:

あなたが持っている場合



$ collection = collect([(object)['website' => 'twitter'、 'url' => 'twitter.com']、(object)['website' => 'google'、 'url' => ' Google COM' ] ]);

次に、配列をCollectionクラスのインスタンスにラップします。つまり、呼び出すまで、通常の配列のようには動作しません(-配列のようになりますが、1つのように扱わないでください-)all()またはその上にtoArray()。追加されたインデックスを削除するには、使用する必要がありますvalues()。

$ sorted = $ collection-> sortBy( '​​website'); $ sorted-> values()-> all();

期待される出力:



[{#769 + 'ウェブサイト': 'google'、+ 'url': 'google.com'、}、{#762 + 'ウェブサイト': 'twitter'、+ 'url': 'twitter.com'、} 、]

ドキュメントhttps://laravel.com/docs/5.1/collections#available-methodsを参照してください

NStoArrayメソッドは、コレクションをプレーンなPHP配列に変換します。コレクションの値がEloquentモデルの場合、モデルも配列に変換されます。

NSallメソッドは、コレクションによって表される基になる配列を返します。




私の場合、テスト目的でサービスを偽造するためのコレクションを作成していたので、

$ collection = new Collection(); foreach($ items as $ item){$ collection-> push((object)['prod_id' => '99'、 'desc' => 'xyz'、 'price' => '99'、 'discount' = > '7.35'、]); }