• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Schleifen und Arrays

freakXHTML

Mitglied
Hallo zusammen,
ich habe ein Array, das ich mit den Zahlen 0 bis 9 füllen möchte. Anschließend soll das erste Element ausgegen werden. Ich erwarte also eine 0. So sieht der Quelltext aus:

PHP:
<?php
for($i = 0; $i < 10; $i++) 
echo $a[] = $i;
 
echo $a[0];
?>

Es kommt folgende Ausgabe:
01234567890

Warum wird das ganze Array ausgegeben und woher kommt die letzte Null?

Was mache ich falsch?

Vielen Dank
lg, freakXHTML
 
Du hast ja eine for Schleife ohne {} heisst es wird nur der nächste Befehl 10 mal ausgeführt. Wenn du ein echo hats und dabei eine variable setzt wird immer die value ausgegeben, was also i entspricht.
also zuerst 0 dann 1 usw bis 9. nach der Schleife wird dann echo $a[0] ausgegeben. Das erste Element das gesetzt wurde war halt 0 :)

Und bitte die doppelten themen löschen
 
Hi,
klar! Das habe ich auch sofort danach erkannt. War wohl zu übereifrig. Ich habe aber noch eine andere Frage. Angenommen ich habe folgenden Quelltext:

PHP:
<?php
$a = array("mo" => "Montag", "di" => "Dienstag", "mi" => "Mittwoch");
$a[] = "Donnerstag";
?>

Gibt es dann irgendeine Möglichkeit auf das neue Element, das "Donnerstag" beinhaltet, zuzugreifen.

Manchmal ist die Technik dieses Forums echt komisch. Wenn ich das Thema erstellen möchte, kommt eine kryptische Fehlermeldung, die wohl "fatal" sei. Deswegen habei ich mehrmals den Button geklickt, mit der Annahme, dass das Erstellen des Themas immer fehlschlägt. Das war wohl nicht der Fall.....

lg, freakXHTML
 
Da gibt es (wie immer) verschiedene Möglichkeiten.

PHP:
<?php

error_reporting(-1);

$a = array("mo" => "Montag", "di" => "Dienstag", "mi" => "Mittwoch");
$a[] = "Donnerstag";

var_dump($a);

echo '<hr />';

$a_part = array_slice($a, -1, 1);

var_dump($a_part);

echo '<hr />';

echo key($a_part);

echo '<hr />';

echo current($a_part);
echo $a_part[key($a_part)];

Doku: PHP: Array Functions - Manual

PS: Du brauchst übrigens nicht für jede weitere kleine Frage zum selben Thema einen neuen Thread zu erstellen.
 
Wenn ich mich recht entsinne entspricht $a[] = "value" einem array_push
Somit wäre Donnerstag in einem nummerischen Array. Da du noch nichts numerisches belegt hast wirst du an Donnerstag wohl so dran kommen: $a[0]
 
Stimmt alles. Das wäre aber keine generische Lösung und ich vermute mal, dass numerische und nicht-numerische Indizes gemischt werden, ist unbeabsichtigt und noch eine Art Verständnisfehler.

(Sorry, der Beitrag hier von mir ist etwas dünn. :))
 
Zurück
Oben