Arrays vergleichen

  • Hi,
    ich müsste 2 Arrays miteinander vergleichen.
    BugFix hat mal (schon länger her) das hier geschrieben:

    Das Funktioniert leider nur Solange, wie die Arrays eine Alphabetische Reihenfolge besitzen.
    Wenn das erste Array jetzt z.B. so aussieht

    [autoit][/autoit][autoit][/autoit][autoit]

    $arArray1[0] = "a"
    $arArray1[1] = "z"
    $arArray1[2] = "b"
    $arArray1[3] = "c"
    $arArray1[4] = "d"

    [/autoit]

    Wird es logischerweise nicht funktionieren. Auch alphabetisch geordnet funktioniert es nicht.
    Ich habe jetzt viel rumprobiert und habe im Kopf eigentlich schon eine Lösung die funktionieren würde.
    Ich könnte das erste von oben nach unten durch das 2. Array durchsuchen lassen.
    Das einzige Problem, was dabei ist, ist, dass das alles sehr langsam abläuft.

    Meine eigentlich Frage ist nur, obs vielleicht schon eine Funktion gibt, die das bewerkstelligt?
    Ansonsten machs ichs einfach mit For-Schelife und Arraysearch, obwohl mir das nicht gefällt.

    Danke schonmal :)

    2 Mal editiert, zuletzt von anno2008 (6. Oktober 2008 um 20:13)

    • Offizieller Beitrag

    Könntest du z.B. so machen:

    [autoit]

    Global $oAList_1 = _ObjAListCreate()
    Global $oAList_2 = _ObjAListCreate()
    Global $Str1 = 'l|p|s|d|u|t'
    Global $Str2 = 'q|o|l|f|p|w'

    [/autoit][autoit][/autoit][autoit]

    _ObjAListAddColl($oAList_1, $Str1)
    _ObjAListAddColl($oAList_2, $Str2)

    [/autoit][autoit][/autoit][autoit]

    Global $sDiff = ''
    For $element In $oAList_1
    If Not _ObjAListSearch($oAList_2, $element) Then $sDiff &= $element & '|'
    Next
    ConsoleWrite('Unterschied: ' & StringTrimRight($sDiff, 1) & @CRLF)

    [/autoit]