我有一個名爲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很少知道到現在爲止。謝謝,傑克。 –