2013-07-31 97 views
0

我正在玩foreach和簡單的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" 
} 

這是爲什麼?我做錯了什麼?

+1

也許如果你刪除錯誤抑制,你會得到一個線索。 – Orangepill

回答

0

它不保存在兩個數組中。您在每個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" 
} 
0

爲什麼你認爲它是兩個數組?你的var_dump在你的循環中,所以它每次迭代都會拋棄。

+0

哦......我多麼愚蠢。謝謝! –

相關問題