mehrdimensionales Array auslesen

Paula

Erfahrenes Mitglied
Servus,

per print_r sieht mein Array wie folgt aus:
Code:
Array
(

    [127.0.0.1] => Array
        (
            [1] => 1
            [2] => 1
            [3] => 1
            [4] => 1
            [5] => 1
        )

    [192.168.0.1] => Array
        (
            [159] => 1
            [160] => 1
            [161] => 1
        )

    [10.100.100.1] => Array
        (
            [216] => 1
            [217] => 1
            [218] => 1
        )

)
Wie kann ich aber per PHP das Array auslesen, dass ich alle Elemente angezeigt bekommen. folgenden Versuch habe ich probiert:
PHP:
foreach( $arr as $host ) {

	$content .= $host .' - '. $arr .'<br>';
	foreach( $host as $value ) {
		$content .= $value .'<br>';
	}


}
Aber die Ausgabe der ersten foreach-Schleife ergibt bei beiden Variablen nur "Array". Dort möchte ich jedoch die IP herausbekommen. Wie geht das?


Gruß
 
Dafür brauchst du in der foreach Schleife eine weitere, denn schlieslich ist das Erste Element des Arrays wiederum ein Array der Feld für Feld abgeklappert wird.
 
Nunja, eigentlich nicht, aber man könnte der Verständlichkeithalber eines hinzufügen:

Dafür brauchst du in der foreach Schleife eine weitere foreach-schleife, denn schlieslich ist das Erste Element des Arrays wiederum ein Array der Feld für Feld abgeklappert wird.

Um das nochmal aufzuschlüsseln:
Du hast ein Array. Dieses gehst du Schritt für Schritt ab und kommst so an die Werte in den entsprechenden Feldern. In jedem Feld findest du jetzt aber anstatt deinem endgültigem Wert wiederum ein Array. Folglich musst du diese innerhalb der ersten foreach-Schleife wieder mit einer weiteren foreach-Schleife Feld für Feld abgehen um dann an die tatsächlichen Werte zu kommen.
 
Ums dir Bildlich zu zeigen:

PHP:
foreach($array1 as $werte_a1){
    
    foreach($werte_a1 as $werte_a2){
        echo $werte_a2;
    }

}
 
Wie folgt hat es funktioniert:
PHP:
foreach( $arr as $host => $value ) {


	$content .= $host .'<br>';

	foreach( $value as $foo => $bar ) {
		$content .= '['. $foo .'] =&raquo; '. $bar .'<br>';
	}


}
 
Zurück