Wenn ich ein SimpleXML Objekt zu einem Array hinzufügen möchten oder tun array_map
oder auch einfache Dinge wie diese:Hinzufügen SimpleXML zu Array verursacht seltsame Verhalten
$menu[] = $data;
// $data is SimpleXML Object.
verursacht It is not yet possible to assign complex types to properties
Fehler. Dies ist ein Code, den ich ausprobiert habe:
Kein Glück: Noch verursacht Fehler. Ich benutze foreach, um die $ Daten zu erhalten. Das ist der Grund. Ich habe versucht foreach((array) $datas->Module as $data)
, kein Glück auch.
$menu = array_map(function($data) {
return data;
}, $datas->Module);
dies vielleicht eine dümmste Lösung, aber ich hinzugefügt zu (array)
, und kein Glück.
$i=0; $menu = [];
foreach($datas as $data){
$menu[$i] = $data;
$i++;
}
array_push($menu, $data);
Alles ist sinnlos T^T. Wie man es richtig macht, SimpleXML-Objekt zu einem Array hinzufügen (Pushing it)?
EDIT
XML String:
<Module name="Administrative Task" url="Admin" icon="glyphicon glyphicon-list-alt" rule_name="url_administrative" rule_min="R">
<Submodule name="User Management" url="User">
<Proccess name="Add New" url="New"/>
</Submodule>
</Module>
<Module name="Lisencing Systems" url="Lisensi" icon="glyphicon glyphicon-book" rule_name="url_licensing" rule_min="RWUD">
<Submodule name="User Management" url="User">
<Proccess name="Add New" url="New"/>
</Submodule>
</Module>
In Ihrer Zeile 'array_map' übergeben Sie' $ datas-> Module', das kein Array ist, sondern ein SimpleXMLElement-Objekt. Die '$ menu [] = $ data' Zeile sollte gut funktionieren, genauso wie die' foreach': https://3v4l.org/0HIKE – IMSoP
Ich kann den Fehler, den Sie gegeben haben, nicht reproduzieren. Bitte bearbeite die Frage so, dass sie eine [mcve] enthält, damit wir verstehen können, woher der Fehler kommt. – IMSoP
Ich habe die Frage aktualisiert, ich benutze PHP 5.6.1, hängt das mit meiner PHP-Engine zusammen? – Kekesed