我在那里玩foreach和Simple HTML dom,我试图保存一些到数组的链接。但我的问题是,结果保存在两个数组中,而不是一个数组中。
foreach($html->find('div[class^=voucher success]') as $q)
{
@$var = $q->find('a', 0)->href;
$pos = strpos($var, "/ut/");
if($pos === false)
{
$item[] = $var;
}
var_dump($item);
}
转储:
array(1) {
[0]=> string(10) "/hm?v=2726" }
array(2) {
[0]=> string(10) "/hm?v=2726" [1]=> string(10) "/hm?v=2732"
}
为什么?我做错了什么?
它不保存在两个数组中。您将在每个foreach循环的末尾转储数据。因此它转储两次,因为foreach中有两个循环。
要查看$item的最终结果,您需要在foreach之后转储。
foreach($html->find('div[class^=voucher success]') as $q)
{
@$var = $q->find('a', 0)->href;
$pos = strpos($var, "/ut/");
if($pos === false)
{
$item[] = $var;
}
}
var_dump($item);
现在的输出是:
array(2) {
[0]=> string(10) "/hm?v=2726" [1]=> string(10) "/hm?v=2732"
}
为什么认为它在两个数组中?var_dump在循环中,所以每次迭代时都会转储它。