Hallo Andreas, hallo $name // dedlfix?
Vielen Dank,
ihr habt mir sehr geholfen. Nachdem ich mich wie dedlfix vorgeschlagen hat mit "foreach" beschäftigt habe, bin ich im Grunde auf dieselbe Lösung gekommen, wie Andreas.
Andreas: Beachte dass hierbei jeweils keine Kopie von $test verwendet wird, sondern direkt die "originalen" Daten in $test verändert werden.
Danke für diesen Hinweis. Ich habe nicht gewußt, dass ich mit "&" eine Referenz an die Variable übergeben kann, und die Funktion somit den Orginalwert verändert.
[Link:http://de.php.net/manual/en/functions.arguments.php#functions.arguments.by-reference]
Muss ich bisher überlesen haben. Das ist aber sehr nützlich.
Also vielen Dank! Schöne Grüße!
Anatol
Zur Ergänzung: Folgendes Script funktioniert dann:
<?
############################################################
// Diese Beispielfunktion wandelt alle Werte eines Arrays in HTML entities um
function processArray(&$item){
if (is_array($item)) {
foreach ($item as $key => $value) {
$item[$key] = processArray($value);
}
} else {
$item = htmlentities($item);
}
return $item;
}
############################################################
// ich erstelle einen mehrdimensionalen Array:
$test = array (
0 => array (
0 => array (
"eins" => "Umlaut Ä",
"zwei" => "Umlaut Ö",
"drei" => "Umlaut Ü"
),
1 => array (
"irgend" => "Straße",
"etwas" => "Müsli",
"etc" => "Öl",
"blabla" => "Blindtext, ähm ...",
0 => array (
"name" => "irgendein Inhalt, äöüß"
),
),
),
1 => array (
1 => array (
"eins" => "Umlaut Ä, schonwieder",
"zwei" => "Umlaut Ö, egal was",
"drei" => "Umlaut Ü, Inhalt!"
),
),
);
echo "<hr>vorher:<hr><pre>";
print_r ($test);
echo "</pre>";
// Funktion aufrufen:
processArray($test);
echo "<hr>nachher:<hr><pre>";
print_r ($test);
echo "</pre>";
?>