警告:解析简单 XML 时存在非法偏移类型


Warning: Illegal offset type While Parsing SimpleXML

$defindexes = get_tf2_allitem_node($backpack,"defindex");
$itemmap = array();
foreach ($defindexes as $items)
{
    $imageURL = find_tf2_allitem_node_by_defindex($schema,$items,"image_url");
    $itemmap[$items] = $imageURL;
}

本质上,我正在尝试解析一个架构文档,以及一个 simpleXML 中的背包文档。 $defindexes获取给定$backpack对象中项目的所有索引。然后,我正在尝试在背包=> image_url这些项目中创建一个项目$itemmap,我正在使用find_tf2_allitem_node_by_defindex((进行轮询,并为其提供$schema作为参数,并检查每个索引。我认为我将$items传递给函数的方式有问题,因为没有值返回。我猜这与$defindexes是一个对象数组这一事实有关?

这是怎么回事?

示例$defindexes转储:

array(146) { 
    [0]=> object(SimpleXMLElement)#10 (1) { [0]=> string(2) "42" }   
    [1]=> object(SimpleXMLElement)#8 (1) { [0]=> string(2) "44" }  
    [2]=> object(SimpleXMLElement)#11 (1) { [0]=> string(2) "37" } 
    [3]=> object(SimpleXMLElement)#12 (1) { [0]=> string(3) "116" }
    ...
}

我通过修改$defindexes来包含强制转换为字符串的 SimpleXML 对象数组来解决此问题。通过这种方式,foreach 循环能够完成,因为 find_tf2_allitem_node_by_defindex(( 函数现在将接收一个要解析的字符串。