Sandra: Ausgabe eines ARRAYs

ich habe ein Problem mit ARRAY, wo ich nicht mehr weiterkomme!
Ich lese einen Text aus und sortiere nach Vorkommnisen der einzelnen Wörter, die schreibe ich dann alle in ein ARRAY. Wenn ich mit
var_dump($array)
mir die Einträge ansehe sind alle da:
Auszug aus der Ausgabe:
array(200) { ["hamburg"]=> int(11) ["mainz"]=> int(9) ["wien"]=> int(6) ["verona"]=> int(5)....

Nun möchte ich aber nicht alle ausgeben lassen sondern nur die ersten 10 Einträge. Ich wollte das über

for($v=0;$v <= 10;$v++){  
     echo $array[$];  
   }

lösen, aber leider funktioniert es nicht so wie ich mir das vorgestellt habe.

Kann mir hier vielleicht wer weiterhelfen?

Sandra

  1. hallo,

    for($v=0;$v <= 10;$v++)

    damit werden 11 Durchläufe gemacht

    echo $array[$];

    ----------------------^

    liegt es vielleicht daran?

    grüße,
    henman

    --
    "Sir! We are surrounded!" - "Excellent! We can attack in any direction!"
    1. Nein, war mein Fehler beim Schreiben des Beitrages

      for($v=0;$v <= 20;$v++){
           echo $inhalt[$v].'<br>';
         }

      Aber da bekomme ich nur eine Ausgabe die ich mir nicht erklären kann:

      Ausgabe:

      1
      1

      2

      1

      1

      Also so wie ich es deute (wahrsagerrei) sind es zwar 10(11) Zeilen, aber leider steht nicht drin was ich gerne möchte

      Sandra

      hallo,

      for($v=0;$v <= 10;$v++)

      damit werden 11 Durchläufe gemacht

      echo $array[$];

      ----------------------^

      liegt es vielleicht daran?

      grüße,
      henman

  2. Hallo,

    array(200) { ["hamburg"]=> int(11) ["mainz"]=> int(9) ["wien"]=> int(6) ["verona"]=> int(5)....

    du hast also ein assoziatives Array mit Strings als Schlüsselwerten.

    for($v=0;$v <= 10;$v++){

    echo $array[$];
       }

    Gibt die Werte: $array[0], $array[1], usw aus. Gibt es diese in deinem Array?  
      
    Schau dir mal foreach an: <http://de3.php.net/manual/de/control-structures.foreach.php>  
      
    Grüße  
    
    
    1. foreach ($array as $value) {
          echo "Value: $value<br />\n";
      }

      Wenn ich das Ausgebe bekomme ich aber nur den jeweiligen Inhalt, also hier bei mir 11,9,6,,5 etc.

      Ich möchte aber das dort wien, verona etc steht

      So sieht mein Arry aus.....
      print_r($array)

      Array ( [hamburg] => 11 [artikel] => 9 [mainz] => 6....

      Hallo,

      array(200) { ["hamburg"]=> int(11) ["mainz"]=> int(9) ["wien"]=> int(6) ["verona"]=> int(5)....
      du hast also ein assoziatives Array mit Strings als Schlüsselwerten.

      for($v=0;$v <= 10;$v++){

      echo $array[$];
         }

      
      > Gibt die Werte: $array[0], $array[1], usw aus. Gibt es diese in deinem Array?  
      >   
      > Schau dir mal foreach an: <http://de3.php.net/manual/de/control-structures.foreach.php>  
      >   
      > Grüße  
      > 
      
    2. hi,

      Schau dir mal foreach an: http://de3.php.net/manual/de/control-structures.foreach.php

      Genau, ich unterstreich das mal:

      "There are two syntaxes; the second is a minor but useful extension of the first:"

      (means foreach (array_expression as $key => $value))

      Useful? Excellent!

      Hotti

      1. Langsam aber sicher nähere ich mich dem Ziel

        foreach ($array as $k => $v) {
            echo "[$k]\n";
        }

        Aber wie bekomme ich es dann noch hin das nur die ersten 10 Ergebnisse ausgegeben werden?

        Sandra

        1. hi,

          Aber wie bekomme ich es dann noch hin das nur die ersten 10 Ergebnisse ausgegeben werden?

          ich fürchte, ein break bei 9 würde Dir momentan nicht wirklich helfen. Mein Vorschlag geht eher in Richtung "Erstellung" des Arrays. Z.B. so, dass im Index [0]..[9999999999] steht. Das erleichtert die Ausgabe mit dem gewünschten Ergebnis ;-)

          Viele Grüße,
          Horst Klugschei?er

  3. Hi!

    Wenn ich mit var_dump($array) mir die Einträge ansehe sind alle da:
    array(200) { ["hamburg"]=>  int(11) ["mainz"]=>  int(9) ["wien"]=>  int(6) ["verona"]=>  int(5)....

    Sehr schön. Ein <pre> vorher erhöht die Übersichtlichkeit.

    Nun möchte ich aber nicht alle ausgeben lassen sondern nur die ersten 10 Einträge. Ich wollte das über

    for($v=0;$v <= 10;$v++){

    echo $array[$];
       }

      
    Du hast doch die Kontrollausgabe gemacht. Siehst du da irgendwo einen nummerischen Index, auf den du zugreifen kannst? Nein. Wie greift man der Reihenfolge auf Elemente zu, die assoziativ abgelegt sind? Mit foreach [\*]. Und wenn du nur 10 haben willst, musst du zusätzlich mitzählen.  
      
      
    [\*] Es gibt noch die Möglichkeit mit next() und Co. doch foreach ist weniger aufwendig.  
      
      
    Lo!
    
    1. [*] Es gibt noch die Möglichkeit mit next() und Co. doch foreach ist weniger aufwendig.

      Ja, aber das mit dem mitzählen kapier ich nicht, vor allem nicht wie ich es anwenden kann?

      Sandra

      1. Hi!

        Ja, aber das mit dem mitzählen kapier ich nicht, vor allem nicht wie ich es anwenden kann?

        Wie im realen Leben. In einer Straße stehen Häuser, alle schön hintereinander und sie sind zur Abwechslung mal nicht mit Hausnummern versehen. Von den ersten zehn Häusern möchtest du je ein Foto machen. Also läufst du los und zählst nebenbei - mit den Fingern als Zählvariable - die Häuser an denen du vorbeikommst und brichst die Aktion nach dem zehnten ab, egal wieviele da noch kommen.

        $finger = 0;  
        foreach ($häuser as $haus => $inhalt) {  
          foto($haus);  
          if (++$finger == 10)  
            break;  
        }
        

        Lo!