COMPANY SERVICE STAFF BLOG NEWS CONTACT

STAFF BLOG

スタッフブログ

TECHNICAL

テクログ

2024.06.03

【Laravel】コレクションのchunkで勘違いした話【すぐ読める記事!】

テクログ

コレクションのchunkメソッドで勘違いしてしまったことがあったので共有します。

https://readouble.com/laravel/10.x/ja/collections.html#method-chunk

例えば以下のような例

    $arr = ['a', 'b', 'c', 'd', 'e'];
    $collection = collect($arr);
    $chunks = $collection->chunk(2);

    var_dump($chunks->toArray());

結果は以下のようになります。

array(3) { [0]=> array(2) { [0]=> string(1) "a" [1]=> string(1) "b" } [1]=> array(2) { [2]=> string(1) "c" [3]=> string(1) "d" } [2]=> array(1) { [4]=> string(1) "e" } }

自分はchunkが生成するそれぞれのコレクション(今回はtoArrayしているので配列)のキーが0から始まると勘違いしたことがありました。。。

$arrが[キー1=>バリュー1, キー2=>バリュー2]のようにコード上で表現されていなかったので、キーの保持が意識できていませんでした。

先ほどの各配列のキーを0スタートにするために、例えば以下のような実装をすることができます。

    $arr = ['a', 'b', 'c', 'd', 'e'];
    $collection = collect($arr);
    $chunks = $collection->chunk(2);

    $arr = [];
    foreach ($chunks->toArray() as $eachArr) {
        $arr[] = [...$eachArr];
    }
    var_dump($arr);

結果

array(3) { [0]=> array(2) { [0]=> string(1) "a" [1]=> string(1) "b" } [1]=> array(2) { [0]=> string(1) "c" [1]=> string(1) "d" } [2]=> array(1) { [0]=> string(1) "e" } }

この記事を書いた人

jordan

入社年2022年

出身地神奈川

業務内容開発

特技・趣味バスケ観戦・スニーカー収集・映画鑑賞

テクログに関する記事一覧

TOP