LoginSignup
3
0

More than 1 year has passed since last update.

[laravel 8.52]shiftとpopの関数が複数のアイテムを返せるように!

Posted at

概念

今までlaravelのコレクションのpop()shift()が一つのアイテムだけを削除し、返すことでしたが、Laravel8.52に含まれているこのPRでは、引数が受け取れるようになって、複数のアイテムを返すようになりました。

使い方

基本

返したいレコード数をpop()shift()に引数として渡すと、そのレコード数がコレクションから削除され、新しいコレクションとして返されます。いずれの関数のデフォルト引数値が1ですので、引数を定義しない場合には、今までと同じように1アイテムがコレクションから削除され、返されます。


    $collect = collect([
        'Craig',
        'is',
        'very',
        'handsome!'
    ]);

    // 最後の二つのアイテムを削除し、新しいコレクションとして返す
    $collect->pop(2);
    // collect(['handsome!', 'very']);

    $collect->all();
    // ['Craig', is];

    // 最後のアイテムを削除し、返す
    $collect->pop();
    // 'is'

shift()の関数はpop()と違って「最後」のではなく、「最初」のアイテムを処理する動きで、実行の仕方も同じなので、ここで省略します。

注意

コレクションのアイテム数より大きいな引数を渡すと、返されるコレクションのサイズが必ず渡された値になるので、存在しないアイテムの分がNULLとして返されたコレクションに入れるので気を付ける必要があります。


    // 4アイテムのコレクションを作る
    $collect = collect([
        'Craig',
        'is',
        'very',
        'handsome!'
    ]);

    // 最初の6つのアイテムを削除し、返す
    $collect->shift(6);

    // 存在しないアイテムの分がNULLとして入ってしまします
    // collect(['Craig', 'is', 'very', 'handsome!', NULL, NULL])

参照

https://github.com/laravel/framework/pull/38093
https://laravel.com/docs/8.x/collections#method-pop
https://laravel.com/docs/8.x/collections#method-shift

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0