Collectionメソッド」の使い方を再チェックすることです。Laravelはマイナー・バージョンアップでも新しいメソッドを追加するので、定期的にチェックをしておかないとせっかくの便利な機能を見逃してしまうからです。Collection」の全実例をケース別でまとめてお届けしたいと思います。合わせて読みたいデータを取得するget()で指定したキーのデータを取得するget()はCollectionの一番基本的なメソッドで、PHPの配列のようにキーを指定してデータを取り出します。鈴木また、キーが無い場合は以下のようにインデックス番号を指定することでデータ取得できます。鈴木なお、もし存在しないキーを指定した場合はnullになりますが、第2引数にデフォルト値を指定しておくこともできます。※デフォルト値はfunction()で設定することもできます。その場合はreturnでデフォルト値を返してください。pluck()で指定したキーの配列を取得する例えば、「name」の値だけを取得する場合です。$collection->pluck('name');print_r($names->toArray());実行結果はこうなります。藤原)また、連想配列として取得することもできます。「id」をキーとする連想配列です。'id');print_r($names->toArray());実行結果です。藤原)toArray()で中身を配列で取得するtoArray()を使うとCollectionの中身を配列にして取得することができます。'田中'])->all();print_r($collection->toArray());all()で中身を配列で取得するall()はほぼtoArray()と同じで、Collectionの中身を配列で取得することができます。'田中'])->all();print_r($collection->all());toArray()との違いがあるのは、Collectionの中にさらにCollectionが含まれている場合です。9])]);dd($collection->toArray());これを実行すると、toArray()の場合は全ての要素をPHPの配列に変換します。これとは逆に、all()を使った場合、CollectionはCollectionのままで残ることになります。9])]);dd($collection->all());そのため、foreachループなどの中でさらにCollectionのメソッドを使いたい場合はall()を使うほうがいいでしょう。take()で指定した件数だけデータ取得するCollectionの中から特定の件数だけを取得します。$collection->take(3);print_r($chunk->toArray());実行結果は以下のようになります。田中)なお、マイナスの数字を使うと「後ろから●件のデータ」を取得することもできます。$collection->take(-2);print_r($chunk->toArray());結果はこうなります。藤原)※キーが保持されていることに注意してください。toJson()でJSONデータを取得する例えば、Ajax通信などのためにJSON形式のデータを用意したい場合です。$collection->toJson();実行結果はこうなります。表示してやれば自動的にJSON形式になってくれます。(上の例と同じになります)diff()で指定データ「以外」のデータだけ取得するdiff()を使うと、元々のCollectionの中から指定したもの「以外」のデータを取得することができます。'田中']);print_r($diff->toArray());この場合、実行結果は以下のようになります。藤原)※キーが保持されていることに注意してください。diffAssoc()でキーの中身が違っているものだけ取得するdiffAssoc()は「キーがお互い存在していて、なおかつその値が違っているデータ」だけを取得します。'170cm']);print_r($diff->toArray());これを実行するとこうなります。20)diffKeys()でキーが存在しているデータだけ取得するdiffKeys()は比較データには存在しない、つまり元データだけに存在するキーだけを取得するメソッドです。'大阪府']);print_r($diff->toArray());この場合、以下のようにdiffKeys()の引数には含まれていない「age」と「height」だけが取得されることになります。170cm)each()で1行ずつデータを取得するeach()を使えばCollectionの中身(キーと値)を1行ずつ取り出すことができます。false;」を実行します。false;});eachSpread()でデータを変数に格納させながら1行ずつ取得するeachSpread()は、each()のように1行ずつデータを取得しますが少しそのやり方が少し違っています。実際の例を見てみましょう。何かの処理});function()内の引数がそれぞれの配列の位置(インデックス)に対応しています。キーがあるCollectionではエラーになりますので注意してください。only()で指定したキーだけ取得する例えば、「id」と「name」だけを取得したい場合です。'name']);print_r($filtered->toArray());これを実行すると以下のようになります。鈴木)except()で指定したキー「以外」を取得するonly()とは逆に、例えば「id」と「name」以外を取得したい場合です。'name']);print_r($filtered->toArray());実行結果はこうなります。170cm)filter()で条件に合うデータだけを取得する例えば、「テストで80点以上取った人」だけを取得する場合です。80);});print_r($filtered->toArray());これを実行するとこうなります。(キーが保持されていることに注意してください。82)ちなみに、function()が指定されていない場合は、条件式でfalseになるものが全て削除されます。田中)first()で条件に合う最初のデータだけ取得する例えば、「テストで最初に80点以上だった点数」を取得する場合です。82もちろん、function()を指定しない場合は一番最初のデータが取得されます。70firstWhere()で条件に合うデータだけを取得するfirstWhere()はwhere()のように「条件に合う最初のデータ」を取得するメソッドです。'鈴木');print_r($array);もちろん以下のように比較演算子を使うこともできます。20);ちなみに、条件に合うものがない場合は結果は、nullになります。forPage()を使ってページごとのデータを取得するforPage()は、「現在のページ番号」と「件数」を指定してデータ取得するメソッドです。3);print_r($chunk->toArray());この例で言うと、データの0件目(=鈴木)から3件分のデータを取得するという意味になり、結果は以下のようになります。田中)implode()でデータを結合した文字列を取得する値を結合し、文字列としてデータ取得するメソッドです。名前を「&」で繋いで結合する場合です。田中もし、1次元配列の場合はキーは必要なく、以下のように結合文字だけを指定するだけでOKです。田中keys()でキーを取得する以下の例で言うと、「id」「name」「age」というキーを取得したい場合です。$collection->keys();print_r($keys->toArray());ちなみに、以下のように多重配列の場合でも1次元のキーが全て取得できます。hobbies)values()でキーを初期化したデータを取得するキーがついているデータから、キーを初期化した新しいデータを取得します。$collection->values();print_r($new_collection->toArray());これを実行するとこうなります。藤原)Collectionにはキーを保持するメソッドも多くありますが、そのキーをならしたい場合は以下のように「->」でつなげてvalues()を使いましょう。2)->values();last()で最後のデータを取得する一番最後のデータを取得する場合です。藤原また、function()を使えば「条件に合う最後のデータ」を取得することもできます。20歳以上});print_r($array);この例で取得できるデータは、20歳以上の人で、一番最後の山本さんになります。25)reduce()でデータをひとつにして取得する例えば、値を使って1つの文字列をつくりたい場合です。例で、$carryの中身は文字列が結合してどんどん長くなっていきます。初期のデータを決めて置きたい場合は第2引数へ入れましょう。reject()で条件に合わないものを除外してデータ取得する例えば、20歳未満の人のデータを除外する場合です。20歳未満は「除外」});print_r($filtered->toArray());これを実行するとこうなります。))※注意が必要なのは、条件式がtrueになるものは除外されるという点です。英単語に馴染みがないと直感的にはfalseにしてしまいそうになりますが、逆になっています。random()でランダムにデータを取得する例えば、ランダムに名前を取得する場合です。鈴木(ランダムに変わる)また、データを複数取得する場合は引数に件数を入れます。$collection->random(3);print_r($names->toArray());unique()で重複しない値だけを取得する例えば、重複しない名前を取得する場合です。$collection->unique();print_r($unique->toArray());これを実行するとこうなります。重複していましたが、処理後はひとつだけになっています。田中)また、多重配列の場合はキーを指定してやることでユニークなデータを取得することもできます。$collection->unique('name');print_r($unique->toArray());実行結果はこうなります。))さらに、function()を使えばより複雑なユニークデータを作成することもできます。以下のように「名前」+「年齢」で処理する場合です。例:鈴木-16});print_r($unique->toArray());実行結果はこうなります。名前と年齢がともに同じ2つの「田中」さんは重複しているとみなされ1つのデータになっています。))uniqueStrict()で重複しない値だけを取得するunique()とほぼ同じですが、重複しているかどうかをチェックする際により厳しくチェックされます。以下のような変数の型までチェックする方法になります。{}※使い方は同じなので前項目のunique()をご覧ください。unwrap()でCollectionの元になったデータを取得する可能であれば元になったデータを取得するメソッドです。'山本']));print_r($collection);集計データを取得するcount()でデータ数を取得するcount()を使うとどれだけの要素が入っているかを知ることができます。average()でデータの平均値を取得するavg()を使うとデータの平均値を取得することができます。3また、avg()はキーが入ったデータにも対応しています。その場合は引数に平均値を取得したいキーを入れましょう。24※avg()とaverage()は同じものです。max()で最大値を取得するmax()でデータの最大値を取得することができます。5また、キーを指定することもできます。30min()で最小値を取得するmin()でデータの最小値を取得することができます。1また、max()と同じくキーを指定することもできます。20sum()で合計値を取得する値を全て足した合計値を取得します。15また、多重配列の場合はキーを指定して合計値を取得することもできます。以下は点数の合計値を取得する例です。325さらに、function()を使うとより複雑な合計値を取得することもできます。点数の2乗を合計した値を取得する場合です。24031median()で中央値を取得するデータの中央値を取得します。3なお、多重配列の場合はキーを指定することで以下のような使い方もできます。19mode()で最頻値(モード)を取得するデータから最頻値を取得します。4]);print_r($collection->mode());また、多重配列の場合はキーを指定することもできます。40]]);print_r($collection->mode('age'));nth()で●番目のデータを取得する始めの値から●の倍数ごとに来る値を取得する場合はnth()が使えます。$collection->nth(3);print_r($new_collection->toArray());これを実行したものが以下になります。10)search()で指定した値のキーを取得する例えば、たくさんある名前の中から「田中」さんが何番目かを知りたいときにsearch()を使います。2この場合はインデックス、つまりゼロから始まる数字になることに注意してください。値が見つからない場合はfalseが返されます。falseさらに、値を探す際にデータ型まで考慮した厳しい比較をしたい場合は以下のように第2引数にtrueを入れましょう。文字列なので見つからないつまり、以下のようなif文を思い浮かべるといいでしょう。{}なお、search()にはfunction()を使うこともできます。20歳以上の人のデータを探す場合です。1(2番めのデータ)データを追加・削除・作成するpush()でデータを最後に追加するpush()は一番最後にデータを追加するメソッドです。'青']);$collection->push('黄色');print_r($collection->toArray());これを実行すると以下のようになります。黄色)ちなみに、引数に配列を指定するとそのまま配列構造が残るので注意してください。))そのため、一気に複数のデータを同じ次元にデータ追加したい場合はconcat()を使いましょう。put()でキーと値を追加する新しいキーと値を追加する場合はput()を使います。20);print_r($collection->toArray());実行結果はこうなります。20)concat()でデータを最後に追加するconcat()を使えば一番最後に新しいデータを追加することができます。'白']);print_r($concatenated->toArray());これを実行すると以下のようになります。白)※push()でも一番最後にデータを追加することができますが、引数が配列の場合、そのまま配列が追加されます。(つまり多次元配列になります)combine()でキーと値を結合する例えば、名前(name)と都道府県(todofuken)のデータを作成する場合を見てみましょう。'東京都']);print_r($combined->toArray());この実行結果はこうなります。東京都)※キーと値の件数が違っている場合はエラーが発生するので気をつけてください。forget()でキーを使ってデータ削除するキーを指定して値を削除するメソッドです。25]);$collection->forget('name');print_r($collection->toArray());これを実行すると以下のようになります。25)また、削除したいキーは配列を使って一気に指定することもできます。'age']);pull()で指定キーを削除するキーを指定してデータ削除する場合はpull()を使います。20]);$collection->pull('name');print_r($collection->toArray());これを実行すると以下のようになります。20)ちなみにforget()と同じように見えますが、pull()は削除した値を返します。鈴木intersect()で存在しない値を削除するintersect()は元データに指定した値が存在しない場合、その全てを削除するというメソッドです。'山本']);print_r($intersect->toArray());実行結果はこうなります。山本)intersectByKeys()で存在しないキーを削除するintersect()の場合は、値を使って存在しないものを削除しましたがintersectByKeys()は、キーを使って実行します。'佐藤']);print_r($intersect->toArray());上の例では、指定したキー「name」以外のデータが全て削除され結果は以下のようになります。鈴木)merge()で2つのデータを合体させる例えば、「id」と「name」しかないデータと「age」を合体させてみましょう。20]);print_r($merged->toArray());実行結果はこうなります。20)※ちなみにキーが重複している場合は新しいデータで上書きされます。キーがついていない配列でもmerge()は使えます。'藤原']);結果はこうなります。藤原)union()で2つのデータを合併するmerge()と似ていますが、違いは「重複するデータの取り扱い方」です。union()の場合すでにキーが存在している場合は元のデータが優先されます。2]);print_r($union->toArray());これを実行するとこうなります。「id」が重複していますが、元の「1」が優先されて残っています。23)prepend()で最初の位置にデータを追加するデータの最初に新しいデータを追加します。'田中']);$collection->prepend('高橋');print_r($collection->toArray());これを実行するとこうなります。(※インデックスの値は保持されません。田中)また、連想配列に追加する場合は第2引数にキーを指定します。'id');shift()で最初のデータを削除する一番最初のデータを削除する場合です。'田中']);$collection->shift();print_r($collection->toArray());実行結果は削除された「鈴木さん以外の4人になります。田中)また、shift()の返り値は削除されたデータになります。鈴木pop()で最後のデータを削除する一番最後のデータを削除する場合です。'田中']);$collection->pop();print_r($collection->toArray());実行結果は削除された「田中」さん以外の4人になります。佐藤)また、pop()の返り値は削除されたデータになります。田中times()で特定の回数分だけデータを作成する例えば、「その1」〜「その10」というデータを作る例を見てみましょう。$number;});print_r($collection->toArray());第1引数がデータの件数で、第2引数はそのデータを作るfunction()です。Seederでテストデータを作るのに重宝するでしょう。wrap()でCollectionデータを作成する可能であればCollectionデータを作成します。'田中']);zip()で多重配列を作成する元データにそれぞれ新しい値を追加し、多重配列を作成します。生徒データとテスト結果を結びつける場合です。23]);print_r($zipped->toArray());これを実行するとこうなります。))データの構造や値を変更するchunk()である件数ごとに分割するchunk()をたくさんあるデータをある特定の件数ごとに分割するメソッドです。実際の例を見てみましょう。$collection->chunk(2);print_r($chunks->toArray());この場合、名前データを2件ずつに分割しています。結果は以下のようになります。配列の中身のキーが保持されて0〜4になっていることに注意してください。))split()で指定数にデータを分割するchunk()の場合はデータ件数を指定して分割をしましたが、split()では何分割したいかを指定します。$collection->split(3);print_r($groups->toArray());この例ではデータを3分割にしています。実行結果はこうなります。))collapse()でデータを平坦化するcollapse()を使うと、多重配列となったデータを平坦化することができます。$collection->collapse();print_r($collapsed->toArray());これを実行したものが以下になります。藤原)crossJoin()で、あり得る全ての組み合わせを作る例えば、料理と飲み物を選ぶ場合です。'水']);print_r($new_collection->toArray());この場合、以下のような全ての組み合わせを取得することができます。))さらに、引数を多重配列にすることで、より多くの組み合わせを取得することもできます。以下は、ハンバーガーのセットを注文するときの全組み合わせの例です。'お茶']);print_r($new_collection->toArray());これを実行すると以下のような組み合わせが取得できます。))flatMap()で全データを加工する例えば、全データの文字数を数えたい場合に利用します。$values);});print_r($flattened->toArray());これを実行すると以下のようにキーごとにカウントされた文字数が取得できます。3)flatten()で多次元配列を1次元配列にするflatten()を使えば、多次元配列を1次元配列に構造を変化させることができます。$collection->flatten();print_r($flattened->toArray());これを実行すると以下のようになります。黄色)※キーは保持されません。flip()でキーと値を入れ替えるflip()はキーと値を入れ替えるメソッドです。$collection->flip();print_r($flipped->toArray());実行結果はこうなります。key_3)ちなみに、以下のように値が重複している場合は最後のものが適用されます。key_3)groupBy()でキーごとにデータをまとめる例えば、年齢ごとにデータを分ける場合です。$collection->groupBy('age');print_r($grouped->toArray());これを実行すると以下のようになります。))この場合、1次元のキーが「年齢」になり、中身がゼロから始まる配列としてデータが振り分けられています。グループ化するキーを独自に変更したい場合は引数にfunction()を使うといいでしょう。例:"age-20"});また、元データのキーを保持したい場合は第3引数にtrueを指定してください。true);実行結果は以下のようになります。))keyBy()でキーごとにデータをまとめるgroupBy()と同様にキーごとにデータを配列でまとめますが、keyBy()の場合はキーごとに1つのデータしか取得できません。(つまり重複するものは最後のデータのみ取得される)例えば以下のような例です。$collection->keyBy('age');print_r($keyed->toArray());この場合、年齢ごとにデータをまとめますが取得できるデータは重複したものを除いた3件だけです。そのため、全て取得したい場合はgroupBy()を使いましょう。))また、groupBy()と同じく、引数にfunction()を使って独自のキーを使うこともできます。例:"age-20"});map()で全てのデータに特定の加工をする例えば、名前データに「様」をつける場合です。様';});print_r($new_collection->toArray());これを実行すると以下のようになります。様)transform()で全てのデータに特定の加工をする前項目のmap()と似ていますが、map()が新しいデータを作るのに対して、こちらは元データを加工します。様';});print_r($collection->toArray());実行結果はこうなります。様)mapInto()で全ての要素を特定クラスのインスタンスにする例えば、日付データをすべてCarbonのインスタンスにして取得する場合です。$collection->mapInto(Carbon::class);これを実行すると以下のようになります。独自クラスを使うこともできて、その場合はコンストラクタに各データが入ってくるようなクラス構成にする必要があります。}}mapSpread()で変数に格納しながら新しいデータを作成するmapSpread()を使えば、多重配列になったデータを1行ずつ取り出して新しいデータを作成することができます。$name_3;});print_r($sequence->toArray());これを実行すると以下のようになります。木村)mapToGroups()で1行ずつ取得しながらグループ化する例えば、年齢ごとにグループをつくる場合にmapToGroups()が使えます。groupBy()でも同じことができますが、mapToGroups()の場合は同時に各データにいろんな加工をすることができます。実際の例を見てみましょう。$name];});print_r($grouped->toArray());実行結果はこうなります。するのが連想配列になっているということですね。mapWithKeys()で連想配列をつくる例えば、あるデータから特定の連想配列を作成する場合です。mapToGroups()と似ていますが、こちらはキーが重複する場合は上書きされます。(つまり1つのキーには1つの値しか保持できない)では、例を見てみましょう。$name];});print_r($grouped->toArray());実行結果はこうなります。さん)pad()でデータ数を揃える例えば、値が3つあるCollectionを5つに揃えたい場合にpad()が使えます。'(欠席)');print_r($new_collection->toArray());上の例では、データ数は3つなのに対してpad()では5つになるよう指定してます。そのため、足りない文のデータは「(欠席)」が追加されます。(欠席))partition()で2グループに分ける例えば、テストで80点以上取った点数と、そうでない点数を分ける場合です。80);});print_r($pass->toArray());print_r($fail->toArray());実行結果はこうなります。22)※キーが保持されていることに注意してください。$collection->get('age');});print_r($piped);slice()でデータを抜き出す例えば、3番め以降のデータだけ抜き出す場合です。ここ以降が残るprint_r($slice->toArray());これを実行するとこうなります。藤原)※キーが保持されていることに注意してください。第2引数で件数を指定することもできます。2);結果こうなります。山本)splice()でデータを抜き出すslice()と似ていますが、splice()は元データを該当するデータを削除し、その削除したデータを元に新しいCollectionを作成します。ここ以降が削除されるprint_r($collection->toArray());print_r($chunk->toArray());実行結果はこうなります。藤原)また、slice()と同様に第2引数で件数を指定することもできます。1);データを並べ替えるsort()で昇順に並べ替える小さい値から順番に並べ替える場合です。$collection->sort();print_r($sorted->toArray());これを実行するとこうなります。93)※キーが保持されていることに注意してください。sortBy()でキーを指定して昇順に並べ替える例えば、年齢の若い順に会員データを並べ替える場合です。$collection->sortBy('age');print_r($sorted->toArray());実行結果はこうなります。))※キーが保持されていることに注意してください。sortBy()の引数にはfunction()を使うこともできます。趣味が少ない順に並べ替える場合は以下のようになります。count($item['hobbies']);});print_r($sorted->toArray());実行結果です。))sortByDesc()でキーを指定して降順に並べ替えるsortBy()の逆バージョンです。詳しくは前項目のsortBy()をご覧ください。sortKeys()でキーの昇順に並べ替えるCollectionのキーを使って昇順に並べ替える場合です。$collection->sortKeys();print_r($sorted->toArray());実行結果はこうなります。5)sortKeysDesc()でキーの降順に並べ替えるsortKeys()の逆バージョンです。詳しくは前項目のsortKeys()をご覧ください。reverse()で並び順を反転させるデータを逆順にする場合です。$collection->reverse();print_r($reversed->toArray());これを実行するとこうなります。鈴木)※順番は変わりましたが、キーは保持されていることに注意してください。shuffle()でランダムに並べ替える中身をランダムに並べ替える場合です。鈴木)※キーが保持されないことに注意してください。データをチェックするhas()で特定のキーが存在するかをチェックする例えば、年齢データ(age)が含まれているかどうかをチェックする場合です。'年齢データが含まれています。';}※注意が必要なのは、もし指定したキーの中身が「null」や空白でも上のif文はtrueとなることです。単純にキーが存在してるかどうかをチェックしてるんですね。contains()で特定のデータが含まれているかどうかをチェックするcontains()は指定した値が含まれているかをチェックします。'鈴木さんが含まれています。';}また、キーが入ったCollectionでも同様に使えます。'鈴木さんが含まれています。';}そして、多重構造のCollectionの場合、キーを指定してデータが含まれているかどうかをチェックすることもできます。'「name」に鈴木さんが含まれています。';}最後に、function()を使った方法も紹介しましょう。Trueになる条件式をreturnするようにします。'鈴木さんが含まれています。';}containsStrict()でデータが含まれているかチェックする基本的にはcontains()と同じですが、比較の仕方がより厳しいくなっています。実際の例を見てみましょう。この条件ではtrueになる}上の例ですと、ひとつ目のcontainsStrict()は「false」になります。指定された値が’20’と文字列として比較されているからです。{}が成り立つ関係でないといけません。そのためbooleanと数字の比較などを注意しておく必要があります。every()で全ての要素が条件をクリアしてるかチェックする例えば、「全員がテストで80点以上とってるかどうか」をチェックする場合です。'全員が80点以上取っています';}つまり、function()内の条件式で全てが「true」になれば、$resultは「true」。逆に1つでも条件式を満たさないデータがある場合は「false」となります。isEmpty()で中身が空かどうかをチェックする中身が空かどうかをチェックするメソッドです。';}ちなみに、Collectionの中にnullが含まれていても空白ではない、つまり上の例ではfalseとなり文字は表示されないことになります。collect([null]);ただし、以下のように中身自体がnullの場合は空白とみなされてtrueになります。collect(null);isNotEmpty()で中身が空ではないかどうかをチェックするisEmpty()の逆バージョンです。'中身は空ではありません。';}データの中身を表示するdd()でデータの中身を表示する中身を表示し、その場で処理を終了させます。'ここは実行されません';dump()でデータの中身を表示するdd()と同じく中身を表示してくれますが、こちらは途中で処理が終了にはなりません。'ここは実行されます。';条件で分岐させるwhen()で条件分岐させる真偽地がtrueの場合に実行するメソッドです。ここに何か});unless()で条件分岐させる真偽値がfalseの場合に実行するメソッドです。ここに何か});重要なのはfalseの場合に実行される点です。trueの場合に実行したい場合は前項目のwhen()を使いましょう。データを絞りこむwhere()でデータを絞り込む例えば、データの中から20歳の人だけを絞り込む場合です。20);print_r($filtered->toArray());実行結果はこうなります。))whereStrict()でデータを絞り込むwhere()とほぼ同じですが、比較の方法がより厳格なものになっています。以下のように型も考慮した比較をします。{}※使い方はwhere()をご覧ください。whereIn()で複数の該当データを絞り込む例えば、20歳と23歳の会員データだけを取得する場合です。23]);print_r($filtered->toArray());これを実行するとこうなります。))whereInStrict()でデータを絞り込むwhereIn()とほぼ同じですが、比較の方法がより厳格なものになっています。以下のように型も考慮した比較をします。{}※使い方はwhereIn()をご覧ください。whereNotIn()で指定データ以外に絞り込むwhereIn()の逆バージョンです。指定したデータ「以外」のものだけに絞り込むメソッドです。20歳と23歳以外の会員データを取得する場合です。23]);print_r($filtered->toArray());実行結果はこうなります。))whereNotInStrict()で指定データ以外に絞り込むwhereNotIn()とほぼ同じですが、比較の方法がより厳格なものになっています。以下のように型も考慮した比較をします。{}※使い方はwhereNotIn()をご覧ください。whereInstanceOf()でクラスのインスタンスかどうかで絞り込むどのクラスのインスタンスかをチェックして絞り込みをしたいときに使います。$collection->whereInstanceOf(\App\User::class);この例で取得できるのは、1つ目と2つ目のデータです。その他macro()で独自のCollectionメソッドをつくる独自のCollectionメソッドを作りたい場合はmacro()を使います。実際の例を見てみましょう。名前の後に「様」をつけるメソッドsir()です。様';});やっていることは、第1引数にメソッド名、第2引数に独自データを返すfunction()を設定しているだけです。記述すればいいでしょう)使い方はこうなります。様make()でCollectionをつくるmake()は新しいCollectionを作成するメソッドです。'藤原']);ただ、Collectionはコード量が少ないヘルパー関数「collect()」で作成することをおすすめします。'藤原']);tap()で途中経過をチェックするCollectionの構造を何度か変化させている途中でデータがどうなっているかチェックするにはtap()を使います。->shuffle();おわりに当初はそれほどこの記事を作成するのに時間がかかるとは思ってませんでしたが、結果として(フルではないにしても)3日ほど時間がかかり最終的に4万文字を越えることになってしまいました。^^;ただ、新しい発見をたくさん発見したので開発者としてはプラスになったと思います。みなさんも時短&可読性の良いコードのためにぜひ参考にしてみてくださいね。開発スキルプログラム開発は15年以上。Laravel、Vue.jsをメインとしてPython(機械学習)やElectronの開発もお引き受けしております。過去2度カナダのバンクーバーに滞在していました。開発状況によりましては開発をお待ちいただく可能性がございますが、いつでもご相談は受けさせていただいております。お気軽にご連絡ください!お問い合わせフォーム開発してほしい機能を募集中!MITライセンスで公開します。詳しくはこちらの記事をご覧ください。ぷれりり・プレスリリース掲載無料のプレスリリース・スタンド!播磨孤道(はりまこどう)兵庫周辺のゆったり自転車一人旅の記事を書いていきます。