Laravelコレクションのフラット化


  1. 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]
  1. flatten()メソッドを使用する方法: flatten()メソッドは、コレクション内のすべての要素を再帰的にフラット化します。
$collection = collect([1, 2, [3, 4], [5, [6, 7]]]);
$flattened = $collection->flatten();
// 結果: [1, 2, 3, 4, 5, 6, 7]
  1. 再帰的な関数を使用する方法: 再帰的な関数を使用して、コレクション内の要素を再帰的に処理し、フラット化します。
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のコレクションをフラット化することができます。適切な方法を選択し、コードに組み込んでください。