---
title: "PHP Array-Problem"
url: "https://www.typo3.net/d/73678-php-array-problem"
source: "typo3.net"
tags: ["Allgemein","Frage"]
created: "2008-02-14"
last_reply: "2008-02-14"
replies: 6
solved: false
page: 1
pages: 1
lang: "de"
---

# PHP Array-Problem

Allgemein · 6 Antworten · gestartet 2008-02-14

## Eröffnungsbeitrag

**hoppingwallaby** · 2008-02-14 · [Beitrag #1](https://www.typo3.net/d/73678-php-array-problem/1)

Hallo Forum!

Ich schreibe gerade eine eigene Extension und habe aber ein wahrscheinlich relativ einfaches PHP-Problem. Ich habe ein Ausgangsarray in der Form:

```php
$array = array(
    'system'=>array(
        'test'=>'installed',
    ),
    'configuration'=>array(
        'dbhost'=>'localhost',
    ),
);
```

und will daraus einen String der Form

```php
[system]

test = "installed"

[configuration]

dbhost = "localhost"
```

generieren. Der Name der einzelnen Array-Felder ist vor Funktionsaufruf leider nicht bekannt, eine Feld-ID für eine Schleife ist somit nicht vorhanden. Wie setze ich das um?

Danke für jede Hilfe!

## Antworten

### [#2](https://www.typo3.net/d/73678-php-array-problem/2) · einpraegsam.​net · 2008-02-14

> **hoppingwallaby schrieb:**
>
> Hallo Forum!
>
> Ich schreibe gerade eine eigene Extension und habe aber ein wahrscheinlich relativ einfaches PHP-Problem. Ich habe ein Ausgangsarray in der Form:
>
> ```php
> $array = array(
>     'system'=>array(
>         'test'=>'installed',
>     ),
>     'configuration'=>array(
>         'dbhost'=>'localhost',
>     ),
> );
> ```
>
> und will daraus einen String der Form
>
> ```php
> [system]
>
> test = "installed"
>
> [configuration]
>
> dbhost = "localhost"
> ```
>
> generieren. Der Name der einzelnen Array-Felder ist vor Funktionsaufruf leider nicht bekannt, eine Feld-ID für eine Schleife ist somit nicht vorhanden. Wie setze ich das um?
>
> Danke für jede Hilfe!

Mit foreach kannst du die keys und die values auslesen...

<http://de2.php.net/manual/de/control-structures.foreach.php>

### [#3](https://www.typo3.net/d/73678-php-array-problem/3) · Unbekannter Benutzer · 2008-02-14

In etwa so:

```php
$string = "";
//ebene 1
foreach($array as $key=>$value_array) {
  $string .= "[".$key."]\n\n";

  //ebene 2
  foreach($value_array as $index=>$value) {
    $string .= $index." = \"".$value."\"\n";
  }
  $string .= "\n";
}
print $string;
```

### [#4](https://www.typo3.net/d/73678-php-array-problem/4) · hoppingwallaby · 2008-02-14

Super, vielen Dank! Hat einwandfrei funktioniert...

### [#5](https://www.typo3.net/d/73678-php-array-problem/5) · Stoneage · 2008-02-14

Die einfache Variante ist wohl so:

```php
foreach ($array as $key => $arr) {	
	$output .= "[$key]\r\n";
	foreach ($arr as $attr => $string) {
		$output .= "$attr=\"$string\"\r\n";
	}
}
echo $output;
```

Übrigens kriegst Du die Namen des Arrays mit dem Befehl array_keys heraus. Für eine Schleife brauchst Du keine Feld-ID (siehe foreach).

Nachtrag: Falls jemand Zeit und Lust hat, kann er/sie ja mal eine Version als Rekursion oder vielleicht was ganz anderes beitragen!?

### [#6](https://www.typo3.net/d/73678-php-array-problem/6) · Unbekannter Benutzer · 2008-02-14

@Tetramatrix:

Es obliegt wohl dem jeweiligen Programmierstil, welche Lösung man bevorzugt. PHP bietet da ja für alle was!  ;)

Rein aus Interesse: Welchen Vorteil würde eine rekursive Lösung in diesem Fall haben, wenn ich für jede Dimension eine andere Ausgabe machen will?

lg, Reinhard

### [#7](https://www.typo3.net/d/73678-php-array-problem/7) · Stoneage · 2008-02-14

Hallo mtd04014,

ich will ja nicht überheblich sein, aber es ist doch ein Unterschied ob Du eine Array rekursiv oder iterativ durchläufst. Stichwort: Stacküberlauf.

Nur auf den Vorteil zu schielen, ist meiner Meinung auch nicht immer angebracht. Außerdem gibt es ja noch den Befehl array_keys. Ich glaube meine Aufforderung, doch andere Programmbeispiele beizusteuern, kann ja gar nicht so falsch sein.

MFG

---

Quelle: „PHP Array-Problem“, typo3.net, https://www.typo3.net/d/73678-php-array-problem
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
