EmmJay: Bekommt man aus einem FOREACH den Index des Arrays raus?

Die Frage steht ja im Prinzip schon in der Überschrift...

Ich habe also eine FOREACH-Schleife über einen Array und ich würde gerne neben dem Inhalt des Arrays auch jeweils den dazugehörigen Index auslesen. Geht das? Und wenn ja, wie?

(Ich mein, ich könnte natürlich auch eine FOR-Schleife über die Länge des Arrays machen, dann hätte ich ja den Index direkt mit dabei, aber das ist ja nicht so elegant, als würde ich direkt FOREACH benutzen.)

Danke auf jeden Fall schonmal für die Antwort!

  1. Hallo,

    Ich habe also eine FOREACH-Schleife über einen Array und ich würde gerne neben dem Inhalt des Arrays auch jeweils den dazugehörigen Index auslesen. Geht das? Und wenn ja, wie?

    RTFM.
    http://www.php.net/manual/de/control-structures.foreach.php

    foreach ($arr as $key => $value)
     {
      echo "Schlüssel: $key; Wert: $value<br />\n";
     }

    mfg
    Thomas

    1. Hallo,

      RTFM.

      Sorry, sorry, sorry!
      Ich bin so sehr auf PHP fixiert, dass ich uebersehen hatte,
      dass Du von Perl sprichst. Tut mir leid.
      Ich gehe in mich. ;-)

      Hoffentlich kriegst Du noch eine brauchbare Antwort
      von jemandem, der sich mit Perl auskennt!

      Freundliche Gruesse + einen schoenen Abend,
      Thomas

  2. hallo mj,

    perl ist meine lieblings-sprache, musste aber in letzter
    zeit auch viel mit php machen. bei dem zaehler habe ich mir
    so weiter geholfen:

    $Zaehler = 1 ;
    foreach $Wert ( @Array ) {
      print "$Zaehler: Wert\n" ;
      $Zaehler+=1 ;
    }

    hth, gruss vom bodensee, michael

    1. hallo @all,

      na wo habe ich mich vertippt, wer es zuerst bemaekelt
      bekommt einen punkt von mir (plus oder minus? :-) gruss,

      michael

      1. use Mosche;

        na wo habe ich mich vertippt, wer es zuerst bemaekelt
        bekommt einen punkt von mir (plus oder minus? :-) gruss,

        Ich verstehe nicht wirklich, warum du scalar(@Array)-mal den String "Wert\n" ausgeben willst...

        Ein Blick in 'perldoc perlstyle' könnte deinem Code aber weitrehelfen...

        use Tschoe qw(Matti);

        --
          Anyone who quotes me in their sig is an idiot. -- Rusty Russell.
      2. Hi,
        Schwer zu bemerken ($), aber ich persönlich sehe auch keinen Vorteil darin, extra neue Variablen anzupatzen.
        Desweiteren fängt ein Index üblicherweise bei Null an.

        $i = 0;
        foreach(@Array)   {
        print "$i: $_\n";
        $i++;
        }

        Markus Trusk.

        1. @Markus,

          yo, iss klar, ich habe mich etwas verkuenstelt um das
          verstehen zu vereinfachen und die idee dahinter hervorzuheben.

          thx anyway, michael

  3. Ich habe also eine FOREACH-Schleife über einen Array und ich würde gerne neben dem Inhalt des Arrays auch jeweils den dazugehörigen Index auslesen. Geht das? Und wenn ja, wie?

    Nein.

    Es kommt darauf an was du damit machen willst. Wenn du diesen wirklich nur als Zähler brauchst, dann bleibt dir nur die Lösung einer zusätzlichen Variabel.

    my $index = 0;
    foreach(@array)
    {
    ++$index;
    }

    Struppi.