回声出第一个foreach数组

时间:2014-07-27 16:12:24

标签: php arrays dom

我正在使用这段代码使用Simple Html dom:

$google = "http://www.google.com/something.";

 $html = file_get_html($google_html);

 foreach ($html->find('span[class=st]') as $element) 

    echo $element->innertext;

但我只想回应$element->innertext中的第一个。

我怎能只回应第一个?

上面的代码回显了所有元素。

  • 当找到数组的第一个子节点时,有没有办法停止搜索simpledom?

我的意思是我们不需要获取所有元素,我们只需要第一个元素,因此浪费时间挑选所有元素并且他们拿起第一个元素!

更好的是,当第一个被发现时,SimpleDom会停下来寻找新物品。

2 个答案:

答案 0 :(得分:2)

如果您不需要,请不要使用迭代。

$elements = $html->find('span[class=st]');
echo $elements[0]->innertext;

您还可以使用选择器中的:first修饰符来提高效率。

答案 1 :(得分:-1)

在第一次迭代后使用break()

foreach ($html->find('span[class=st]') as $element){
    echo $element->innertext;
    break;
}

您可以在PHP.net中阅读本文档中有关break()的更多信息:http://php.net/manual/en/control-structures.break.php


但我会使用此方法来获取数组的第一个元素:

echo $html->find('span[class=st]')->innertext;

无需循环。