按索引获取元素,[n]

我正在使用PHPQuery从HTML中读取一些内容,我无法通过它使用索引来获取元素 方括号。</ p>

请参阅此简单示例:</ p>

  $ html ='&lt; div&gt;&lt; table id =“theTable  “&gt;&lt; tr&gt;&lt; td&gt; FIRST TD&lt; / td&gt;&lt; td&gt; SECOND TD&lt; / td&gt;&lt; td&gt; THIRD TD&lt; / td&gt;&lt; / tr&gt;&lt; / table&gt;&lt; /  div&gt;'; 

$ pq = phpQuery :: newDocumentHTML($ html);

$ table = $ pq-&gt; find('#theTable');
$ tds = $ table-&gt; find('td');

echo“GIDING BY INDEX:

”;
echo'$ tds [1] ='。 $ tds [1];

echo“

”;

echo“进入前面:

”;

($ tds as $ key =&gt; $ td){\ n echo'$ tds ['。 $ key。 '] ='。 pq($ td)。 “
”;
}
</ code> </ pre>

输出结果为:</ p>


按指数排序 :</ p>

$ tds [1] = </ p>

进入前面:</ p>

$ tds [0] = FIRST TD </ p>

$ tds [1] = SECOND TD </ p>

$ tds [2] = THIRD TD </ p>
</ blockquote>

我原本以为我可以使用方括号获取 $ tds [1] </ code>的内容,但似乎没有。 如何通过索引获取?</ strong> </ p>
</ div>

展开原文

原文

I'm using PHPQuery to read some content from HTML, I'm unable to get the element by it's index using the square bracket notation.

See this simple example:

$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:

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

echo "


";

echo "GETTING IN FOREACH:

";
foreach($tds as $key => $td){
    echo '$tds[' . $key . '] = ' . pq($td) . "
";
}

The output of this is:

GETTING BY INDEX:

$tds[1] =

GETTING IN FOREACH:

$tds[0] = FIRST TD

$tds[1] = SECOND TD

$tds[2] = THIRD TD

I would have expected that I can get the contents of $tds[1] using square brackets, but seems not. How can I get it by index?

3个回答



在发布问题后找到答案。 您需要使用 eq(n)</ code>:</ p>

  echo'$ tds [1] ='而不是方括号。  $ tds-&gt; eq(1); 
</ code> </ pre>
</ div>

展开原文

原文

Found the answer just after posting the question. Instead of square brackets you need to use eq(n):

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



尝试 var_dump($ tds)</ code>,它会告诉你tds内部的内容。 也许这些键实际上是字符串,你应该使用:</ p>

  echo“GETTING BY INDEX:

”;
echo'$ tds ['1'] ='。 $ tds ['1'];
</ code> </ pre>

编辑:另外,在你的foreach上你正在使用pq(),也许你应该使用这个</ p> \ n

  echo“GILLING BY INDEX:

”;
echo'$ tds [1] ='。 pq($ tds [1]);
</ code> </ pre>
</ div>

展开原文

原文

Try a var_dump($tds), it'll tell you whats exactly inside the tds. Maybe those keys are actually strings and you should use:

echo "GETTING BY INDEX:

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

Edit: Also, on your foreach you're using pq(), maybe you should use this

echo "GETTING BY INDEX:

";
echo '$tds[1] = ' . pq($tds[1]);

dor2p0520
dor2p0520 你确定两次测试之间没有更多的代码吗? 也许你正在为$ tds变量分配一些不同的东西。 编辑:没关系,我在下面看到了你的答案。
大约 7 年之前 回复
dos8244
dos8244 谢谢,但这不起作用,索引不是一个字符串。 并且var_dump打印整个大型dom树,它没有索引。
大约 7 年之前 回复



请尝试以下操作:</ p>

  echo'$ tds [1] ='。  $ tds ['1']; 
</ code> </ pre>
</ div>

展开原文

原文

Try the following:

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐