我有一个名为library.xml
的XML文档,我使用PHP函数simplexml_load_file()
来获取我可以使用的XML对象。我有一个名为traverseObject()
的函数,它遍历文档并根据文档打印出一个嵌套列表。无法在递归函数中向PHP数组添加元素
其中一个在此嵌套列表中打印出来的标签是id
标签。我试图将所有id
标签收集到一个名为$ids
的数组变量中,以便我可以使用它们生成页面的另一部分。问题是,当我尝试将这些id
s添加到数组时,它是空的。我试过只是将数字5重复添加到数组中,但它仍然不起作用。
这里是简化什么(调试)的程序是这样的:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
</head>
<body>
<div>Test</div>
<?php
$library = simplexml_load_file('095209376/library.xml');
$ids = array();
function traverseObject($object, $map)
{
echo "<ul>";
foreach ($object as $key => $value){
if($key == "title"){
echo "<li><b>" . $object->title . "</b></li>";
} else if ($key == "topic"){
// traverse child elements, if any
traverseObject($value, $map);
} else if($key == "id"){
echo "<i>id: " . $value . "</i>";
$map[] = 5; ** <-------- this is the relevant part
} else { // skip the rest for now
}
}
echo "</ul>";
}
traverseObject($library, $ids);
if($ids == null){
echo "uh oh";
} else {
echo "whaaa";
foreach ($ids as $key => $value){
echo "key: " . $key . ", value: " . $value;
}
}
?>
</body>
</html>
它应该只是添加了一堆5
年代到阵列$ids
,然后打印出来,但你可以看到数组`$ ids $为空。这里是获取打印:
我看过了代码一堆次了,但我看不出什么毛病。
哇,我不知道我怎么PHP很少知道到现在为止。谢谢,杰克。 –