我想用从这个 foreach 获得的链接填充一个数组。我怎样才能做到这一点?
foreach($html->find('a') as $link) {
echo $link->href; //output: link1.html link2.html link3.html......
}
所有你需要的是
$links = array_map(function($v){return $v->href;}, $html->find('a'));
我会说array_map()是最好的方法:
$links = array_map(function($link) { return $link->href; }, $html->find('a'));
它获取给定数组中的所有内容(在本例中为$html->find('a')
),并使用您提供的函数(在本例中为 )基于映射返回一个新数组function($link) { return $link->href; }
。它将该函数应用于给定数组中的每个元素,以创建返回数组中的每个元素。
与array_push
. 看到这个链接
<?php
$stack = array();
foreach($html->find('a') as $link) {
array_push($stack, $link->href);
}
print_r($stack);
?>
很简单,试试这个:-
$dataArray = array();
foreach($html->find('a') as $link) {
$dataArray[] = $link->href;
}
echo '<pre>';
print_r($dataArray);
echo '</pre>';
将其放入循环中: $links[]=$link->href;
$hrefs=array();
foreach($html->find('a') as $link) {
$hrefs[]= $link->href; //output: link1.html link2.html link3.html......
}
那应该这样做。