VBScript array_rand 関数

配列から一つ以上の要素をランダムに取得する


Function array_rand(mAry, ByVal num_req)

    If Not isArray( mAry ) Then Exit Function
    If Not isNumeric( num_req ) Then num_req = 1

    Dim rand,i,intCounter,aryCounter,indexes

    intCounter = uBound(mAry)
    aryCounter = num_req -1

    If intCounter < aryCounter Then Exit Function

    Randomize

    ReDim indexes( aryCounter )
    For i = 0 to aryCounter
        Do While true
            rand = Round( Rnd * uBound(mAry) )
            If Not in_array(rand, indexes,true) Then
                indexes(i) = rand
                Exit Do
            End If
        Loop
    Next

    If num_req = 1 Then
        array_rand = indexes(0)
    Else
        array_rand = indexes
    End If

End Function

引数

mAry = array 入力の配列。
num_req = int 取得するエントリの数を指定します。 指定されない場合は、デフォルトの 1 になります。

戻り値

エントリを一つだけ取得する場合、 array_rand() はランダムなエントリのキーを返します。
その他の場合は、ランダムなエントリのキーの配列を返します。
これにより、ランダムなキーを取得し、 配列から値を取得することが可能になります。

処理

・配列から一つ以上のランダムなエントリを取得しようとする場合に有用です。

その他の PHP array 関数