Hey, bakesbusters,
Das Ergebnis ist richtig (Die Verwendung von For $z = 0 To UBound($nummern2, 2) - 1 ), das warum ist aber komplett falsch.
Es hat garnichts mit 3D-Arrays zu tun, es wird auch nichts deklariert.
UBound ist einfach eine Funktion, die die Anzahl der Elemente im Array ausgibt.
Bei einem 1D-Array ist das wie eine Liste, wo UBound($arData) die Anzahl der Elemente in der Liste zurückgibt:
Local $arData = ["Erstes Element", "Zweites Element", "Drittes Element"]
1. Erstes Element => $arData[0]
2. Zweites Element => $arData[1]
3. Drittes Element => $arData[2]
Ubound($arData) gibt also 3 zurück
Ein 2D-Array ist dagegen wie eine Tabelle, wo Ubound($arData) die Anzahl der Zeilen zurückgibt und Ubound($arData, 2) die Anzahl der Spalten.
Local $arData[3][2] = [["Zeile 1 Spalte 1", "Zeile 1 Spalte 2"], ["Zeile 2 Spalte 1", "Zeile 2 Spalte 2"], ["Zeile 3 Spalte 1", "Zeile 3 Spalte 2"]]
+-----------------------------------+----------------------------------+
| Zeile 1 Spalte 1 ($arData[0][0]) | Zeile 1 Spalte 2 ($arData[0][1]) |
+-----------------------------------+----------------------------------+
| Zeile 2 Spalte 1 ($arData[1][0]) | Zeile 2 Spalte 2 ($arData[1][1]) |
+-----------------------------------+----------------------------------+
| Zeile 3 Spalte 1 ($arData[2][0]) | Zeile 3 Spalte 2 ($arData[2][1]) |
+-----------------------------------+----------------------------------+
Ubound($arData) gibt also 3 zurück, weil es 3 Zeilen gibt
Ubound($arData) gibt also 2 zurück, weil es 2 Spalten gibt
Als "Deklaration" bezeichnet man übrigens nur die Angabe ("Deklaration") der Variable. Also z.B.:
Dabei wird nur festgelegt, dass es die Variable gibt (und in den meisten Sprachen auch welchen Typ sie hat, also wie viel Arbeitsspeicher sie benötigt). Dabei wird auch die Größe des Arrays angegeben.
Als "Definition" oder "Zuweisung" wird es bezeichnet, wenn man einer Variable dabei einen Wert zuweist:
Dabei kann man z.B. die Größen-Angabe des Arrays weglassen, weil der Compiler sich die Größe durch die Zuweisung direkt selbst ableiten kann.
Ubound verändert das Array also überhaupt nicht. Es liest nur die Größe aus und gibt sie zurück, damit man damit weiterarbeiten kann.