mapWithKeys()
コレクション全体を反復し、コールバックから返されたキー・値のペアで新しいコレクションを生成します。
$collection = collect([
['name' => 'ichiro', 'no' => 51, 'team' => 'B'],
['name' => 'ichiro', 'no' => 31, 'team' => 'NY'],
['name' => 'matsui', 'no' => 55, 'team' => 'G'],
['name' => 'senichi', 'no' => 77, 'team' => 'D'],
]);
dump($collection->mapWithKeys(function($item) {
return [$item['name'] => $item['team']];
}));
/*
Collection {#420 ▼
#items: array:3 [▼
"ichiro" => "NY"
"matsui" => "G"
"senichi" => "D"
]
}
*/
max()
指定したコレクションの値で一番大きい値を返します。
多重配列の場合はキーを指定するとそのキーの中で一番大きい値を返します。
$array = [];
for($i = 0; $i < 10; $i++) {
$array[] = $i;
}
dump(collect($array)->max());
// 9
$collection = collect([
['name' => 'ichiro', 'no' => 51, 'team' => 'B'],
['name' => 'ichiro', 'no' => 31, 'team' => 'NY'],
['name' => 'matsui', 'no' => 55, 'team' => 'G'],
['name' => 'senichi', 'no' => 77, 'team' => 'D'],
]);
dump($collection->max('no'));
// 77
median()
指定したコレクションの中央値を返します。
多重配列の場合はキーを指定するとそのキーの中央値を返します。
$array = [];
for($i = 0; $i < 10; $i++) {
$array[] = $i;
}
dump(collect($array)->median());
// 4.5
$collection = collect([
['name' => 'ichiro', 'no' => 51, 'team' => 'B'],
['name' => 'ichiro', 'no' => 31, 'team' => 'NY'],
['name' => 'matsui', 'no' => 55, 'team' => 'G'],
['name' => 'senichi', 'no' => 77, 'team' => 'D'],
]);
dump($collection->median('no'));
// 53
merge()
指定した配列、またはコレクションをオリジナルコレクションにマージします。
キーが一致する場合はパラメーターの値で上書きされます。
$collection1 = collect([
['name' => 'ichiro', 'no' => 51, 'team' => 'B'],
]);
$collection2 = collect([
['name' => 'ichiro', 'no' => 31, 'team' => 'NY'],
['name' => 'matsui', 'no' => 55, 'team' => 'G'],
['name' => 'senichi', 'no' => 77, 'team' => 'D'],
]);
dump($collection1->merge($collection2)->all());
array:4 [▼
0 => array:3 [▼
"name" => "ichiro"
"no" => 51
"team" => "B"
]
1 => array:3 [▼
"name" => "ichiro"
"no" => 31
"team" => "NY"
]
2 => array:3 [▼
"name" => "matsui"
"no" => 55
"team" => "G"
]
3 => array:3 [▼
"name" => "senichi"
"no" => 77
"team" => "D"
]
]
min()
指定したコレクションの値で一番小さい値を返します。
多重配列の場合はキーを指定するとそのキーの中で一番小さい値を返します。
$array = [];
for($i = 0; $i < 10; $i++) {
$array[] = $i;
}
dump(collect($array)->min());
// 0
$collection = collect([
['name' => 'ichiro', 'no' => 51, 'team' => 'B'],
['name' => 'ichiro', 'no' => 31, 'team' => 'NY'],
['name' => 'matsui', 'no' => 55, 'team' => 'G'],
['name' => 'senichi', 'no' => 77, 'team' => 'D'],
]);
dump($collection->min('no'));
// 31