我有以下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*..
}
谢谢您的帮助!
您将需要构建类似于以下内容的递归函数。
警告:未经测试,可能需要进行一些调整。但这应该将您的头部放在正确的位置。
foreach ($oDomObject as $oObject) {
$myArray[] = getChildren($oObject);
}
function getChildren($nodeObj) {
retArray = array();
if($nodeObj->hasChildren()) {
$retArray[] = getChildren($nodeObj);
} else {
$retArray[] = $nodeObj->nodeValue;
}
return $retArray;
}
它的作用:如果遇到没有子节点的节点,它将把值附加到数组中。如果不是,则将子级值的数组追加到该数组。这会引起恶心,并尽你所能。
要考虑的事情:
我希望数组完成后的样子是什么,因为在一定深度下,遍历变得非常荒谬和烦人。
为什么我要追加到一个可能会再次循环遍历的数组,而不是立即处理所需的操作?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句