我有以下html结构:
<span class="1">
<span class="name">
</span>
<span class="books">
<span class="english">
</span>
<span class="english">
</span>
</span>
</span>
<span class="2">
<span class="name">
</span>
<span class="books">
<span class="english">
</span>
<span class="english">
</span>
</span>
</span>
...
我正在使用以下函数来检索它:
$oDomObject = $oDomXpath->query("//span[number(@class)=number(@class)]");
如何将值存储在保持嵌套顺序的PHP数组中?
foreach ($oDomObject as $oObject) {
..*SOMETHING*..
}
感谢您的帮助!
答案 0 :(得分:-1)
您需要构建一个类似于以下内容的递归函数。
警告:未经测试,可能需要进行一些调整。但这应该把你的头放在正确的位置。
foreach ($oDomObject as $oObject) {
$myArray[] = getChildren($oObject);
}
function getChildren($nodeObj) {
retArray = array();
if($nodeObj->hasChildren()) {
$retArray[] = getChildren($nodeObj);
} else {
$retArray[] = $nodeObj->nodeValue;
}
return $retArray;
}
它的作用:如果它遇到没有子节点的节点,它会将值附加到数组。如果没有,它会将子数值的数组附加到数组中。这种情况发生在令人作呕的情况下,并且尽可能地让您头脑发热。
要考虑的事情:
我希望我的数组在完成时看起来像是什么样的,因为在某些深度的情况下,这会非常荒谬而且非常烦人。
为什么我要附加到一个数组,我可能会再次循环,而不是立即处理所需的操作?