【Laravel】 Laravel 5.7コレクション を一気に勉強(2) − combine,concat, contains, containsStrict, count




combine()

combineメソッドを呼び出すコレクションの値をキー、combineのパラメーターに設定する配列またはコレクションの値を値とする新しいコレクションを生成します。

$collection1 = collect(['aaa', 'bbb']);
$combined = $collection1->combine(['1111', '2222']);
print_r($combined->all());
/*
Array
(
    [aaa] => 1111
    [bbb] => 2222
)
*/

concat()

concatメソッドに設定した配列やコレクションの値をconcatメソッドを呼び出したコレクションの最後に追加します。

$collection1 = collect(['aaa', 'bbb']);
$collection2 = collect(['cccc', 'dddd']);
$result = $collection1->concat($collection2);
print_r($result);
/*
Array
(
    [cccc] => 3333
    [dddd] => 4444
)
*/

contains()

containsメソッドに指定した値を含むかどうか判定しboolean値を返します。
データ型チェックは緩めです。
数値と文字列の1を比較してもtrueになります。

$collection1 = collect(['aaa', 'bbb', '1']);
echo '1->'.$collection1->contains('aaa');
// true
echo '2->'.$collection1->contains('aaa1');
// false
echo '3->'.$collection1->contains(1);
// true
echo '4->'.$collection1->contains('1');
// true

$collection2 = collect([['count' => 1], ['count' => 2]]);
echo '5->'.$collection2->contains('count', 1);
// true
echo '6->'.$collection2->contains('count', '1');
// true

containsStrict()

containsメソッドと基本的な処理は同じです。
データ型チェックは厳しめです。
数値と文字列の1を比較するとfalseになります。

$collection1 = collect(['aaa', 'bbb', '1']);
echo '1->'.$collection1->containsStrict('aaa');
// true
echo '2->'.$collection1->containsStrict('aaa1');
// false
echo '3->'.$collection1->containsStrict(1);
// false
echo '4->'.$collection1->containsStrict('1');
// true

$collection1 = collect([['count' => 1], ['count' => 2]]);
echo '5->'.$collection1->containsStrict('count', 1);
// true
echo '6->'.$collection1->containsStrict('count', '1');
// false

count()

コレクションのアイテム数を返します。

$collection = collect(['aaa', 'bbb']);
echo $collection->count();
// 2