Hey dedlfix!
Ich will die Schlüssel und Werte eines Array in UTf-8 konvertieren.
Also das ganze Array eben.Am besten gleich beim Erstellen. Ansonsten musst du die Elemente mit den Nicht-UTF-8-Schlüsseln entfernen und neu mit UTF-8-Schlüsseln anlegen. Das bringt unter Umständen die Reihenfolge der Elemente durcheinander.
Meine DB-Abfrage gibt mir doch schon Datensätze als Array.
$array = array();
while($foo = mysql_fetch_assoc($query)){ // $query ist eine gültige MySQL-Abfrage
$array = array_push($array, $foo); // mit Ergebnis, nicht NULL
}
print_r($array);
Zumindest für die Werte kannst du Funktionen verwenden, die alle Array-Elemente durchlaufen (z.B: array_map()).
Vermutlich dürfte das nicht reichen, weil ich die Schlüssel auch in utf8 brauch.
Ich hab zuerst an utf8_encode() gedacht, aber das wandelt nur Strings um. Gibt es so eine Funktion auch für Arrays?
Die Elemente eines Arrays müssen nicht immer nur Strings sein. Auch Zahlen, boolsche Werte und komplexe Strukturen (Arrays, Objekte) können Werte eines Arrays sein. Darauf blind eine Stringfunktion anzuwenden, kann zur Unbrauchbarkeit der Werte führen.
Oh, daran hatte ich auch gar nicht gedacht. Ich müsste also vorher prüfen ob der Wert ein String ist bevor ich utf8_encode(), oder was auch immer, darauf los lasse? Gibt es dafür eine passende Funktion? Auf Anhieb fällt mir da nichts ein. Ich wurschtel mal im Handbuch rum...
best regards