Hello,
Gibt es einen Unterschied zwischen
for ($i = 0; $i < count($typname); $i++) {
echo $typname[$i];
}
>
> und
>
> ~~~php
foreach ($typname as $value) {
> echo $value;
> }
?
Klar gibt es den, insbesondere bei assoziativen Arrays.
Leider machst Du keine Aussage zum Aufbau deines (vermuteten) Arrays $typname.
Wenn $typname ein indiziertes Array sit, also eins, dessen Index lückenlos numerisch von 0 .. x läuft, dann kannst Du dieses Array mit der for()-Schleife durchlaufen. Hat der Index aber eine Lücke, gibt es Schwierigkeiten mit den Lücken und der obereb Grenze, die Du mit count() ermittelst. Dia Anzahl der Elemente hat dann ja nichts mehr mit den Indexgrenzen zu tun.
foreach() arbeitet anders. Du kannst Dir das Array in PHP als verkettete Liste vorstellen, bei verzeweigten Arrays dann eben als Baumstruktur. Foreach() arbeitet nun immer den übergebenen Ast ab, hangelt sich also von einem Element in der Kette zu seinem Nachfolger. Das muss dann keinesfalls der Nachfolger im Index sein, denn der Index bleibt bei foreach() für die Reihenfolge der Abarbeitung ganz außen vor.
Wenn Du den Index in der foreach()-Schleife benötigst, ermöglicht Dir das Sprachkonstrukt dies durch
foreach($_arr as $index => $value)
{
echo "$index: $value\r\n";
}
Die Bezeichner $index und $value sind hier vollkommen frei wählbar und werden im Sprachkonstrukt durch ihre Position an ihre Funktionen gebunden. Du kannst also auch $hans und $gretel dafür verwenden, Hauptsache, Du weißt nachher noch, welcher Name was versinnbildlichen sollte.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg