2015-07-01 206 views
-1

雖然我映射數組中包含的頁面上的所有鏈接,但我想檢查每個鏈接是否插入到此數組中,如果沒有,插入它。向循環中的數組添加值

我試圖使用代碼低音沒有成功,因爲「foreach $ arr」沒有通過新的值。

include_once('simple_html_dom/simple_html_dom.php'); 
$arr = array('http://www.domain.com'); 

foreach ($arr as $key => &$item) { 

$html = file_get_html($item); 

// Find category links 
foreach($html->find('a[href^=http://www.domain.com/dep/]') as $element) { 
    if (!in_array($element->href, $arr)) 
    $arr[] = $element->href; 
    } 

} 

print_r($arr); 

重要提示:我需要在原始數組中搜索並添加值,而不是複製(foreach)。

+2

您的預期結果是什麼? – Rizier123

+1

請刪除「&」來自foreach –

+0

嗨!我編輯了更具體的問題。謝謝! –

回答

1

的所有

首先在foreach ($arr as $key => &$item) {$itemSTRING。 (如警告告訴你的)。所以你不應該在這裏使用$item[]

下一個陷阱:如果你想新的項目添加到您的$arr陣列symtax​​應該

$arr[] = $some_var; 

但是因爲每次添加項目$arr,此陣的增加,你不應該這樣做,你迭代不是超過兩個元素數組,而是例如3個元素或4個元素。你期待這個嗎?

你應該找到新的值,把它們放在其他數組中,然後合併兩個數組。 或使用@spot58解決方案。它甚至更簡單。

+0

正好。 @ splash58代碼的問題在於foreach $ arr不會被插入到$ arr中的新值傳遞。 –