VBScript array_diff 関数

配列の差を計算する


Function array_diff(ByVal mAry1,ByVal mAry2)

    Dim arr_dif,key_c,key,found
    set arr_dif = Server.CreateObject("Scripting.Dictionary")

    If isArray(mAry1) Then
        set mAry1 = array2Dic(mAry1)
    End If

    If isArray(mAry2) Then
        set mAry2 = array2Dic(mAry2)
    End If


    For Each key In mAry1

        found = false
        For Each key_c In mAry2
            If mAry1(key) = mAry2(key_c) Then
                found = true
                Exit For
            End If
        Next

        If Not found Then
            arr_dif.add key, mAry1(key)
        End If
    Next


    set array_diff = arr_dif

End Function

引数

mAry1 = array 比較元の配列。
mAry2 = array 比較する対象となる配列。

戻り値

mAry1 の要素のうち、 その他の配列のいずれにも含まれないものだけを残した配列を返します。

処理

・mAry1 を mAry2 と比較し、その差を返します。
・二つの要素は、(string) elem1 = (string) elem2 の場合のみ等しいと見直されます。
・言い換えると、文字列表現が同じ場合となります。

その他の PHP array 関数