2014-10-20 140 views
3

我正在尝试获取数组的所有值,但我只获取最后一个元素。foreach只发现数组的最后一个元素

(最后描述和最后一个链接)。

这里是代码:

$content = str_get_html($html); 
$links = $content->find('.myclass a'); 

foreach($links as $k => $v) 
{ 
    $descr= $v-> plaintext; 
    $link_to= $v->href; 

    $a=array( 
      1 => $descr, 
      2 => $link_to); 
} 

return a$; 

哪能循环,整个阵列?

回答

4

每个循环都覆盖相同的数组。您需要添加另一个层面:

$content = str_get_html($html); 
$links = $content->find('.myclass a'); 

$a = array(); 
foreach($links as $k => $v) { 
    $descr = $v->plaintext; 
    $link_to = $v->href; 

    $a[] = array(1 => $descr, 2 => $link_to); 
    //^add another dimension 

    // DONT USE THIS! You are overwriting it every loop 
    // $a = array(1 => $descr, 2 => $link_to); 
} 

// return a$; ? a$ maybe `$a` 
+0

**哈利路亚谢谢** – user1739222 2014-10-20 13:53:33

+1

@ user1739222高兴这有助于 – Ghost 2014-10-20 13:54:58

+0

@ user1739222可以请你接受的答案吗? – seanyt123 2014-10-20 14:29:21