将一个多维数组转换为PHP中的XML对象
将一个多维数组转换为PHP中的XML对象
我有一个如下的多维数组:
$array = array( "hello" => "hola", "another_array" => array( "key" => "best key ever", "another" => "yes, another key", ), "coolarray" => array( "bool" => true, "string" => "this is a string!", ), );
我想要一个像这样的类:
class MyClass { public $array; public function __construct($array) { // 做某些操作 $this->array_to_xml($array); } public function array_to_xml($array) { // 将数组转换为xml }
然后我想要能够像这样操作:
$string = $this->array->coolarray->string;
我该如何实现呢?
这个问题的出现是因为提问者想要将一个多维数组转换为XML对象,但是在尝试修改一个开源项目时遇到了问题。提问者提到了XML是因为该项目原本使用XML转换。但是在尝试修改时出现了错误,错误信息是"trying to get a property of a non-object"。
解决方法是提供了一个使用JSON的例子。代码如下:
$obj = json_decode(json_encode($array));
同时,有人指出这种方法是一个很糟糕的做法,并提供了一个更好的解决方法。链接如下:
stackoverflow.com/a/4790485/801496
但是提问者对这个做法保持了保留意见,并表示这个问题的解决方法可能取决于要转换的数组的具体情况。