按索引[n]获取元素


Get element by index, [n]

我正在使用PHPQuery从HTML中读取一些内容,我无法通过使用方括号表示法的索引来获取元素。

看看这个简单的例子:

$html = '<div><table id="theTable"><tr><td>FIRST TD</td><td>SECOND TD</td><td>THIRD TD</td></tr></table></div>';
$pq = phpQuery::newDocumentHTML($html);
$table = $pq->find('#theTable');
$tds = $table->find('td');
echo "GETTING BY INDEX:'n'n";
echo '$tds[1] = ' . $tds[1];
echo "'n'n'n";
echo "GETTING IN FOREACH:'n'n";
foreach($tds as $key => $td){
    echo '$tds[' . $key . '] = ' . pq($td) . "'n";
}

其输出为:

按索引获取:

$tds[1]=

进入FOREACH:

$tds[0]=第一个TD

$tds[1]=第二个TD

$tds[2]=第三个TD

我本以为我可以使用方括号获得$tds[1]的内容,但似乎不是如何通过索引获取

试试var_dump($tds),它会告诉你tds内部到底是什么。也许这些键实际上是字符串,你应该使用:

echo "GETTING BY INDEX:'n'n";
echo '$tds['1'] = ' . $tds['1'];

编辑:另外,在你的前臂上,你正在使用pq(),也许你应该使用这个

echo "GETTING BY INDEX:'n'n";
echo '$tds[1] = ' . pq($tds[1]);

发布问题后立即找到答案。您需要使用eq(n):而不是方括号

echo '$tds[1] = ' . $tds->eq(1);

尝试以下操作:

echo '$tds[1] = ' . $tds['1'];