VBScript array_chunk 関数

配列を分割する


Function array_chunk(mAry,size)

    If not isNumeric(size) Then Exit Function
    If size < 1 then Exit Function

    Dim x,i,c : x = 0 : c = -1
    Dim l : l = uBound(mAry)
    Dim n : n = int(l / size)
    ReDim tmpAry(n)

    For i = 0 to l
        x = i Mod size

        If x >= 1 Then
            If isObject(mAry(i)) Then
                set tmpAry(c)(x) = mAry(i)
            Else
                tmpAry(c)(x) = mAry(i)
            End If
        Else
            c = c +1
            If n <> c Then
                toReDim tmpAry(c),size -1
            Else
                toReDim tmpAry(c),l -i
            End If

            If isObject(mAry(i)) Then
                set tmpAry(c)(0) = mAry(i)
            Else
                tmpAry(c)(0) = mAry(i)
            End If

        End If
    Next

    array_chunk = tmpAry

End Function

引数

mAry = Array 処理を行う配列。
size = int 各部分のサイズ。
preserve_keys = bool TRUE の場合はキーをそのまま保持します。 デフォルトは FALSE で、各部分のキーをあらためて数字で振りなおします。

戻り値

数値添字の多次元配列を返します。添え字はゼロから始まり、 各次元の要素数が size となります。

処理

・配列を、size 個ずつの要素に分割します。
・最後の部分の要素数は size より小さくなることもあります。

その他の PHP array 関数