ERLEDIGT
NEIN
NEIN
ANTWORTEN
7
7
ZUGRIFFE
420
420
EMPFEHLEN
-
28.12.10 12:30 #1
- Registriert seit
- Dec 2010
- Beiträge
- 6
Hallo,
ich habe ein simpleXML-Dokument in ein Array umgewandelt, jetzt haben aber einige Arrays den Key "@attributes". Wenn ich dieses in Smarty verwenden will, gibt das einen Fatal Error aus.
Wie also kann ich in einem Array die Keys mit einem "@" ändern?
MfG,
Philipp15b
-
Nachtrag:PHP-Code:
//Testarray
$array = array('@a' => 'A', 'b' => 'B', '@c' => 'C');
//Die Schlüssel extrahieren
$keys = array_keys($array);
//In allen Schlüsseln @ durch nix ersetzen
array_walk($keys, create_function('&$key', '$key = str_replace("@", "", $key);'));
//Den Array wieder zusammensetzen
$array = array_combine($keys, $array);
print_r($array);
Falls es ein verschavhteltes Array ist, ists nur ein klein wenig aufwendiger
PHP-Code://Testarray
$array = array('@a' => 'A', 'b' => 'B', '@c' => array('@d' => 'D', 'e'=>'E'));
print_r(correctKeysRekursive($array));
function correctKeysRekursive($array){
//Die Schlüssel extrahieren
$keys = array_keys($array);
//In allen Schlüsseln @ durch nix ersetzen
foreach($keys as $index => $key){
//Falls das item ein array ist, darauf ebenfalls diese Funktion anwenden
if(is_array($array[$key])) $array[$key] = correctKeysRekursive($array[$key]);
$keys[$index] = str_replace("@", "", $key);
}
//Den Array wieder zusammensetzen
return array_combine($keys, $array);
}
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
28.12.10 13:13 #3
- Registriert seit
- Dec 2010
- Beiträge
- 6
Danke, aber leider kriege ich das bei verschachtelten Arrays einfach nicht hin...
MfG,
Philipp15b
-
Vielleicht solltest du mal sagen, was du net hinbekommst. Und woran es scheitert.
Da sieht man mal wieder, dass fertigen Code posten nix bringt -.-Waere super wenn ihr euren Code in dieser Form einfuegt:
[JAVA]System.out.println("Test :)");[/JAVA]
wird zu:
Tabs sind uebrigens keine Feinde :)Code java:1
System.out.println("Test :)");
Der "Erledigt Button" beisst net :) Und der "Danke Button" ist auch nicht nur zur zierde
Danke :D
-
28.12.10 13:37 #5
- Registriert seit
- Dec 2010
- Beiträge
- 6
Leider tritt jetzt eine Warnung auf:
Die tritt nur unregelmäßig auf und dabei sind laut var_dump die Arrays leer:Warning: array_combine() [function.array-combine]: Both parameters should have at least 1 element
MfG,array(0) {
}
Philipp15b
-
Naja diese Warnung:
und deine Aussage, das die Arrays leer sind, wuerde mich ueberlegen lassen, ob er mit leeren Arrays nicht klar kommt?Both parameters should have at least 1 elementWaere super wenn ihr euren Code in dieser Form einfuegt:
[JAVA]System.out.println("Test :)");[/JAVA]
wird zu:
Tabs sind uebrigens keine Feinde :)Code java:1
System.out.println("Test :)");
Der "Erledigt Button" beisst net :) Und der "Danke Button" ist auch nicht nur zur zierde
Danke :D
-
Mach mal ein var_dump() auf dein Ursprungsarray und poste das hier. Dann sehen wir mal wie die Ausgangslage ist. Ansonsten können wir auch heiteres Rätselraten veranstallten.
Nachtrag:
Du kannst am Anfang auch den array validieren
PHP-Code:function correctKeysRekursive($array){
if(!is_array($array) || count($array)=0) return $array;
//Rest vom Code
}
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
Beschämend für mich. Das hat man davon wenn man Code ungetestet postt. Ist voller Fehler.
Die neue Zeile muss natürlich so aussehen
PHP-Code:if(count($array)==0) return $array;
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
Ähnliche Themen
-
Wenn "include" verwendet wird hab ich keine "body" Ansicht mehr
Von solala123 im Forum PHPAntworten: 12Letzter Beitrag: 07.11.10, 19:51 -
preg-match gibt immer "0" zurück, auch wenn es "1" sein müsste
Von alexbot im Forum PHPAntworten: 7Letzter Beitrag: 09.04.10, 20:57 -
Formular - Wenn "selected" trotzdem per onChange="submit()" abschicken möglich?
Von Atalión im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 12.10.09, 16:31 -
Handy"Piepen" (diese Frequenzen, wenn man netz sucht) rausfiltern?
Von Xo-mate im Forum Audiotechnik, Recording & Audio-SoftwareAntworten: 6Letzter Beitrag: 28.03.07, 08:51 -
Mit "pattern", "matcher" und "replace" ein Fragezeichen ersetzen
Von Scrapy im Forum JavaAntworten: 8Letzter Beitrag: 01.12.05, 17:13





Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren