3 dimensionale Arrays vergleichen

  • Hey @ all,

    gibt es eine Funktion, mit der man zwei 3 dimensionale Arrays mit einander vergleichen kann? Mir kommt es dabei nur darauf an, ob die beiden Arrays miteinander übereinstimmen oder nicht, d.h. ein Boolwert (true/false) würde mir völlig ausreichen.

    mfG
    Developer30

    "Je mehr Käse, desto mehr Löcher; je mehr Löcher, desto weniger Käse. Ergo: Je mehr Käse, desto weniger Käse. 8| "
    "Programmers never die: they just GOSUB without RETURN"
    "I tried to change the world but I couldn't find the source code."

    Einmal editiert, zuletzt von Developer30 (29. Dezember 2010 um 17:18)

  • Hi,
    ich hab dir mal schnell ne Funktion gemacht zum Prüfen.

    Spoiler anzeigen
    [autoit]


    Dim $aArray[1][1][1] = [[[1]]]
    Dim $aArray2[1][1][1] = [[[1]]]

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

    ConsoleWrite(_3D_VergleicheArray($aArray,$aArray2) & @CRLF)

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

    Dim $aArray[1][1][1] = [[[5]]]
    Dim $aArray2[1][1][1] = [[[1]]]

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

    ConsoleWrite(_3D_VergleicheArray($aArray,$aArray2) & @CRLF)

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

    Func _3D_VergleicheArray(ByRef $aArray, ByRef $aArray2)
    ;By Sprenger120
    ;Vergleichen ob die Arrays gleiche maße haben
    For $x = 0 To 3
    If UBound($aArray, $x) <> UBound($aArray2, $x) Then Return False
    Next

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

    For $Dim = 0 To UBound($aArray, 3) -1
    For $x = 0 To UBound($aArray, 2)-1
    For $i = 0 To UBound($aArray, 1) -1
    if $aArray[$i][$x][$Dim] <> $aArray2[$i][$x][$Dim] Then Return False
    Next
    Next
    Next
    Return True
    EndFunc ;==>_3D_VergleicheArray

    [/autoit]
  • danke :D

    "Je mehr Käse, desto mehr Löcher; je mehr Löcher, desto weniger Käse. Ergo: Je mehr Käse, desto weniger Käse. 8| "
    "Programmers never die: they just GOSUB without RETURN"
    "I tried to change the world but I couldn't find the source code."

  • nein man kann ein array einfach übertragen:

    [autoit]


    Dim $einarray[1][1]
    $andererArray = $einarray

    [/autoit]


    dann ist der komplette Array von $einarray in $andererArray und kann z.B. so angezeigt werden:

    [autoit]

    _ArrayDisplay($andererArray)

    [/autoit]

    "Je mehr Käse, desto mehr Löcher; je mehr Löcher, desto weniger Käse. Ergo: Je mehr Käse, desto weniger Käse. 8| "
    "Programmers never die: they just GOSUB without RETURN"
    "I tried to change the world but I couldn't find the source code."

  • nein man kann ein array einfach übertragen:

    [autoit]


    Dim $einarray[1][1]
    $andererArray = $einarray

    [/autoit]


    dann ist der komplette Array von $einarray in $andererArray und kann z.B. so angezeigt werden:

    [autoit]

    _ArrayDisplay($andererArray)

    [/autoit]

    Ja, stimmt, danke! Dann geht das doch. Hast recht :thumbup:
    Ich muss mir wohl auch immer wieder sagen, dass man statt zu fragen, lieber einfach mal ein paar Sekunden benutzt und das selbst ausprobiert ;)