如果 <table> 包含 <a>,请先获取 <tr> & <a>

Grab first <tr> & <a> if <table> contains <a>

我被困在一个简单的 HTML Dom 问题上...

对于我网页上的每个 <table>,我想扫描 <table> 并检查其中是否有 <a>。如果有,则回显第一个 <tr><a> 否则跳过并继续到最后 <table>.

我开始研究它,但我不确定如何进行或检查 table 中是否有 <a>...

foreach ($html->find('table') as $name) {
    foreach ($name->find('a') as $elem) {
        echo $elem->plaintext.'<br>';
    }
}

有什么想法吗?

您分享的代码看起来非常接近。请参见下文以输出 table 的第一个子 <tr>,如果找到 <a> 元素,则停止循环遍历其他 <a> 元素。您的代码有哪些具体问题?

foreach ($html->find('table') as $name) {
    foreach ($name->find('a') as $elem) {
        echo $name->find('tr', 0)->plaintext; // echo first TR element
        echo $elem->plaintext.'<br>'; // echo A element
        break 1; // skip to the next table
    }
}