ホーム > Laravel > Laravelでコレクションの順番を並びかえる方法
Laravel

Laravelでコレクションの順番を並びかえる方法

いつもご利用ありがとうございます。
この記事には広告が掲載されており、その広告費によって運営しています。

⇨ Laravel 記事の目次はこちら

Laravel でコレクションの順番を並びかえる方法についてまとめました。

Laravel Framework 8.83.8
Vue 2.6

結論

//こういうコレクションがあるとします。
$posts = Post::all();
//並び替える
$sorted = $posts->sortBy('created_at');
//keyを削除
$sorted->values()->all();

解説

今回の例では、Posts テーブルからデータを取得した状態のコレクションの順番を変えてみます。

created_at の昇順

$sorted = $posts->sortBy('created_at');

この状態だと、dd()すれば分かりますが、key が載っていて、foreach などで単純に使用することができません。

key は、sort する前のコレクションの key がついているみたいです。こ

の key を使う用途が現状分かりませんが、このままでは使いづらいので次の項目。

key を削除して、使いやすいように以下の記述をする

$sorted->values()->all();

この記述をすることにより、key がなくなりこれまでのコレクションがじゅばん変更しただけで使いやすい状態になります。

コレクションの並び替えを降順にしたいとき

$sorted = $posts->sortByDesc()('created_at');

まとめ

以上です。

誰かの参考になればと思います。

感想・苦情は TwitterDM にご連絡ください。

それでは!

人気記事

PHP7.4 + Laravel6 のプロジェクトを AWS EC2 にデプロイする

【laravel-breadcrumbs】Laravel でパンくずリストを実装する