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

array problem

win2k

Neues Mitglied
guten morgen,
ich hab folgendes array problem:

[0] => Array
(
[idadressen] => 1
[0] => 1
[straße] => xxxx
[1] => xxxx
)

[1] => Array
(
[idadressen] => 2
[0] => 2
[straße] => xxxxx
[1] => xxxxx
)

so sieht mein array in gekürzter form aus.

Wie bekomm ich nun auch die Inhalte wie Straße plz usw. ?

PHP:
echo "<table border=1>";
foreach($all as $wert) 
{
    $count = count($all);
    for ($i=0; $i < $count; $i++)
    echo "<tr><td>".$wert[$i]."</td></tr>";
}
echo "</table>";
 
So?

PHP:
foreach ($all as $a) {
    foreach ($a as $key => $value) {
        echo $key . ': ' . $value . '<br />';
    }
}

(Edit: Hups, geschachtelt.)

Noch ein Edit: Die Daten sehen so aus, als kämen sie per mysql_fetch_array($res) aus einer Datenbank. Wenn du nicht sowohl numerische ('0') als auch assoziative ('idadressen') Indizes haben möchtest, verwende mysql_fetch_array($res, MYSQL_ASSOC) oder mysql_fetch_assoc($res).
 
Zuletzt bearbeitet:
mermshaus spitze genau das richtige :))) danke.
Könntest du mir vllt. noch kurz erklären was die beiden foreach schleifen machen?
 
In der äußeren Schleife wird nacheinander jeder Wert des Arrays $all der Variablen $a zugewiesen, also jeweils der Inhalt von $all[0], $all[1] usw.

In der inneren Schleife wird nacheinander jedes Paar (Schlüssel => Wert) aus dem aktuellen Inhalt der Variable $a hergenommen und den Variablen $key und $value zugewiesen.

Im ersten Durchlauf enthält $a also die Daten:

Code:
[idadressen] => 1
[0] => 1
[straße] => xxxx
[1] => xxxx

Und $key und $value nacheinander:

Code:
$key, $value
----------------
idadressen, 1
0, 1
straße, xxxx
1, xxxx

Das Verwirrende daran ist vielleicht, dass foreach außen nur die Werte des Arrays liefert und innen Schlüssel und Wert. Du könntest das Beispiel auch so schreiben:

PHP:
foreach ($all as $unusedKey => $a) {
    foreach ($a as $key => $value) {
        echo $key . ': ' . $value . '<br />';
    }
}

Dann wäre $unusedKey nacheinander 0, 1, 2, ... usw.

Da der Schlüssel in vielen Fällen uninteressant ist, gibt es bei foreach-Schleifen die Möglichkeit, ihn gar nicht mit auszulesen.

PS: Beachte mein Edit zum letzten Post. :)
 
hallo.


PHP:
<?php
$break = "\n";

$a = array(
    0 => array(
                "idadressen" => "1"
               ,"0" => "1"
               ,"straße" => "xxxx"
               ,"1" => "xxxx"
           )
	,1 => array(
                "idadressen" => "2"
               ,"0" => "2"
               ,"straße" => "xxxx"
               ,"1" => "xxxx"
           )
);

foreach($a as $k => $aData){

	echo "<pre>";
	
	echo "key: " . $k . $break;
	echo str_repeat("-", 10) . $break;
	
	echo "iadressen: " . $aData["idadressen"] . $break;
	echo "0: " . $aData["0"] . $break;
	echo "straße: " . $aData["straße"] . $break;
	echo "1: " . $aData["1"] . $break;
	
	echo "</pre>";
}
?>


Eleganter wäre das ganze OOP lösbar.


Gruß
Loon3y
 
Zuletzt bearbeitet:
Zurück
Oben