php数组被视为对象

时间:2017-11-13 16:14:36

标签: php arrays xml

我需要使用基于XML的API,我正在处理的事情。我决定因为这个XML需要非常动态,所以更容易在数组中工作并最终转换回XML。我试图在这里使用最高投票解决方案How to convert array to SimpleXML来做这个,当我使用普通数组时,这一切都很好。但是,我使用另一个API来下拉数据,并且该数据是SOAP对象的形式。像这样:

Array
(
    [0] => Soap_1_0_Invoice Object
        (
            [items] => Array
                (
                    [0] => _Soap_1_0_Item Object
                        (

我已经尝试将其转换为数组,并且我已经在每个点完成了gettype()以确保这是一个数组,事实上它是。然而,它的内容仍然说"对象"当我做print_r。

我正在使用本答案中提供的功能:

function array_to_xml( $data, &$xml_data ) {

    foreach( $data as $key => $value ) {
        if( is_numeric($key) ){
            $key = 'item'.$key; //dealing with <0/>..<n/> issues
        }
        if( is_array($value) ) {
            $subnode = $xml_data->addChild($key);
            array_to_xml($value, $subnode);
        } else {
            $xml_data->addChild("$key",htmlspecialchars("$value"));
        }
    }
}

当它击中时

$xml_data->addChild("$key",htmlspecialchars("$value"));

我收到一条错误消息,指出此对象无法转换为此行的字符串。是否有可能将其转换为可用的数组,或者我对这里发生的事情有一个基本的误解?

0 个答案:

没有答案