Der folgende Beitrag wurde am 29. 11. 2009, 18:44 Uhr von Sandra veröffentlicht.
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 mitvar_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 überfor($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
Der folgende Beitrag wurde am 29. 11. 2009, 18:59 Uhr von henman veröffentlicht.
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!"
Der folgende Beitrag wurde am 29. 11. 2009, 19:10 Uhr von Sandra veröffentlicht.
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
Der folgende Beitrag wurde am 29. 11. 2009, 19:18 Uhr von Blubb veröffentlicht.
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
Der folgende Beitrag wurde am 29. 11. 2009, 20:24 Uhr von Sandra veröffentlicht.
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
>
Der folgende Beitrag wurde am 29. 11. 2009, 20:28 Uhr von hotti veröffentlicht.
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
Der folgende Beitrag wurde am 29. 11. 2009, 21:35 Uhr von Sandra veröffentlicht.
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
Der folgende Beitrag wurde am 29. 11. 2009, 21:47 Uhr von hotti veröffentlicht.
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
Der folgende Beitrag wurde am 29. 11. 2009, 22:12 Uhr von dedlfix veröffentlicht.
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!
Der folgende Beitrag wurde am 29. 11. 2009, 22:28 Uhr von sandra veröffentlicht.
>
> [*] 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
Der folgende Beitrag wurde am 30. 11. 2009, 08:01 Uhr von dedlfix veröffentlicht.
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!
© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4