0

我想用从这个 foreach 获得的链接填充一个数组。我怎样才能做到这一点?

foreach($html->find('a') as $link) {
       echo $link->href; //output: link1.html link2.html link3.html......
}
4

6 回答 6

1

所有你需要的是

$links = array_map(function($v){return $v->href;}, $html->find('a'));
于 2012-11-25T14:44:58.237 回答
1

我会说array_map()是最好的方法:

$links = array_map(function($link) { return $link->href; }, $html->find('a'));

它获取给定数组中的所有内容(在本例中为$html->find('a')),并使用您提供的函数(在本例中为 )基于映射返回一个新数组function($link) { return $link->href; }。它将该函数应用于给定数组中的每个元素,以创建返回数组中的每个元素。

于 2012-11-25T14:53:35.873 回答
0

array_push. 看到这个链接

<?php
$stack = array();
foreach($html->find('a') as $link) {
   array_push($stack, $link->href); 
}
print_r($stack);
?>
于 2012-11-25T14:44:43.083 回答
0

很简单,试试这个:-

$dataArray = array();
foreach($html->find('a') as $link) {
       $dataArray[] = $link->href; 
}

echo '<pre>';
print_r($dataArray);
 echo '</pre>';
于 2012-11-25T14:44:48.347 回答
0

将其放入循环中: $links[]=$link->href;

于 2012-11-25T14:45:46.470 回答
0
$hrefs=array();
foreach($html->find('a') as $link) {
       $hrefs[]= $link->href; //output: link1.html link2.html link3.html......
}

那应该这样做。

于 2012-11-25T15:10:51.883 回答