- flatMap()メソッドを使用する方法: flatMap()メソッドは、コレクション内の各要素に対して指定したクロージャを適用し、その結果をフラット化した1次元の配列として返します。
$collection = collect([1, 2, [3, 4], [5, 6]]);
$flattened = $collection->flatMap(function ($item) {
return is_array($item) ? $item : [$item];
});
// 結果: [1, 2, 3, 4, 5, 6]
- flatten()メソッドを使用する方法: flatten()メソッドは、コレクション内のすべての要素を再帰的にフラット化します。
$collection = collect([1, 2, [3, 4], [5, [6, 7]]]);
$flattened = $collection->flatten();
// 結果: [1, 2, 3, 4, 5, 6, 7]
- 再帰的な関数を使用する方法: 再帰的な関数を使用して、コレクション内の要素を再帰的に処理し、フラット化します。
function flattenArray($array)
{
$result = [];
foreach ($array as $item) {
if (is_array($item)) {
$result = array_merge($result, flattenArray($item));
} else {
$result[] = $item;
}
}
return $result;
}
$collection = collect([1, 2, [3, 4], [5, [6, 7]]]);
$flattened = flattenArray($collection->toArray());
// 結果: [1, 2, 3, 4, 5, 6, 7]
これらの方法を使用して、Laravelのコレクションをフラット化することができます。適切な方法を選択し、コードに組み込んでください。