ArraySplit.psm1

<#
    ===========================================================================
     Created by: Rhys M
     Contact: RhysM.PS@gmail.com
     PS Gallery: https://www.powershellgallery.com/profiles/RhysM/
 
     Filename: ArraySplit.psm1
    -------------------------------------------------------------------------
     Module Name: ArraySplit
    ===========================================================================
#>


function ArraySplit{
            Param (
                [array][Parameter(Position = 0, Mandatory = $True)]
                $ArrayInput,
                [int][Parameter(Position = 1, Mandatory = $True)]
                $ArrayCount
            )

    $CharSplitArrays = New-Object System.Collections.ArrayList
    1..$ArrayCount | % { $CharSplitArrays.Add((New-Object System.Collections.ArrayList)) | Out-Null }
    $i = 0
    $ArrayInput | %{
         $CharSplitArrays[$i % $ArrayCount].Add($_) | Out-Null
         $i++
    }

    $Include0_Array = $ArrayCount - 1
    $SplitOutput = New-Object -TypeName PSObject
    foreach ($Number in 0..$Include0_Array){
        $MemberName = "Set_"+"$Number"

        $Char_Set = $CharSplitArrays[$Number]
        $SplitOutput | Add-Member -MemberType NoteProperty -Name $MemberName -Value $Char_Set
    }
    $DataOutput += $SplitOutput
    $DataOutput

    }

Export-ModuleMember -Function ArraySplit