【Laravel】 Laravel 5.7コレクション を一気に勉強(4) − dump,each,eachSpread,every,except




この記事は最終更新日から2年以上経過しています。

dump()

コレクションの内容をダンプします。

collect(['name' => 'ichiro', 'no' => '51', 'type' => 'baseball', 'age' => 45])->dump();

each()

コレクションのキー・値をコールバック関数に1つずつ渡します。

$collection = collect(['51' => 'ichiro', '55' => 'matsui', '77' => 'senichi'])->each(function($item, $key) {
    // $key,$itemを使っていろいろ処理
    if ($key == '55') {
        return false;// ループの途中でやめるときはreturn false
    }
});

eachSpread()

eachとほぼ同じですが、2次元配列を格納しているコレクションの各値をコールバック関数に1つずつ渡します。
コールバック関数の引数は配列の要素分用意します。

collect([['51', 'ichiro', 'B'], ['55', 'matsui'], ['77', 'senichi', 'D']])->eachSpread(function($no, $name, $team) {
    echo $no . ' ' . $name . ' ' . $team . PHP_EOL;
});

every()

コレクションの全要素が指定した条件にすべて一致する場合はtrue、1つでも一致しない場合はfalseを返します。

echo collect([1, 2, 3, 4, 5])->every(function ($value, $key) {
    return $value >= 1;
});// true
echo collect([1, 2, 3, 4, 5])->every(function ($value, $key) {
    return $value >= 2;
});// false

except()

指定したキーを取り除いたコレクションを返します。

$collection = collect(['name' => 'ichiro', 'no' => 51, 'team' => 'B']);
    print_r($collection->except(['no'])->all());
}
/*
Array
(
    [name] => ichiro
    [team] => B
)
*/