UDF - _arraykeyexists

  • Mein erste Mini UDF, es überprüft ob ein Key in einem Array existiert.

    [autoit]


    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.2.12.0
    Author: Tom Schuster ( Tom---Schuster[at]web[dot]de )

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

    Script Function:
    Cheks if a Key exists in a array

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

    #ce ----------------------------------------------------------------------------

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

    ; Script Start - Add your code below here
    func _arraykeyexists ( $array, $index )

    if Not IsArray ( $array ) Then return False

    $u = UBound ( $array ) -1

    if $index > $u Then
    return False
    Else
    return True
    EndIf

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

    EndFunc

    [/autoit]
  • Zitat

    Function UBoundRemember that the value returned by UBound is one greater than the index of an array's last element

    Deswegen, bzw ich versteh dich nicht.
    Die Funktion hab ich gerschrieben , da ich oft errors bekommen hab weil ich index benutz hab der im Array garnicht exstiert.
    Meines wissens gibt es ja keine Funktion wie isset() in php.

  • leg dir mal nen eigenen Schreibstil zu, ich gehe einfach mal davon aus, dass du der Typ (von Programmierern) bist, der seine Arrays ab dem ersten Index befüllt, war bei mir auch so... Wenn du ein Array mit 30 Werten bestücken willst, dann heißt der Befehl Dim $Array[30] und in der For-Schleife: For $i = 0 To Ubound($Array) - 1
    War bei mir immer der Fehler, dass ich Dim $Array[30+1] und in der For-Schleife: For $i = 1 To Ubound($Array) - 1 geschrieben hab, da schleichen sich schnell Fehler ein!

    • Offizieller Beitrag

    Meines wissens gibt es ja keine Funktion wie isset() in php.


    Es gibt ja nur zwei Zugriffsformen auf das Array:
    - alle Elemente durchgehen in einer Schleife ==> da begrenzt du das durch Angabe "To Ubound($Array) -1"
    - gezielt einen Index ansprechen (darauf zielt wohl dein Skript) ==> wenn du selber codest, sollten dir aber schon die existierenden Indizes bekannt sein, insofern ist auch dort eine vorherige Überprüfung nicht notwendig