将一个多维数组转换为PHP中的XML对象

14 浏览
0 Comments

将一个多维数组转换为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;

我该如何实现呢?

0
0 Comments

这个问题的出现是因为提问者想要将一个多维数组转换为XML对象,但是在尝试修改一个开源项目时遇到了问题。提问者提到了XML是因为该项目原本使用XML转换。但是在尝试修改时出现了错误,错误信息是"trying to get a property of a non-object"。

解决方法是提供了一个使用JSON的例子。代码如下:

$obj = json_decode(json_encode($array));

同时,有人指出这种方法是一个很糟糕的做法,并提供了一个更好的解决方法。链接如下:

stackoverflow.com/a/4790485/801496

但是提问者对这个做法保持了保留意见,并表示这个问题的解决方法可能取决于要转换的数组的具体情况。

0