2009-12-21 74 views
0

我有一个数组,我似乎无法取回我的数据。我想要的是每个名称(test1 ...)都有多个与它们关联的网址。如果你看最后一个测试(test5),有2个url,但是这个foreach循环只给了我一个。为什么?PHP数组foreach问题

这里是数组结构和我的foreach循环。

Array 
(
    [test1] => Array 
     (
      [0] => http://www.... 
     ) 

    [test2] => Array 
     (
      [0] => http://www.... 
     ) 

    [test3] => Array 
     (
      [0] => http://www.... 
     ) 

    [test4] => Array 
     (
      [0] => http://www.... 
     ) 

    [test5] => Array 
     (
      [0] => http://www.yahoo.com 
      [1] => http://www.google.com 
     ) 

) 

foreach($source as $name=>$url) 
{ 
    foreach($url as $_url); 
    { 
     echo $name.' - '; 
     echo $_url.'<br>'; 
    } 
} 

回答

2

你有你的第二个以后的foreach一个分号:foreach(...); {...这不应该存在。下面的代码按照您的预期工作。

<?php 
    $source = array(
    'test5' => array(
     "http://www.yahoo.com", 
     "http://www.google.com" 
    ) 
); 

    foreach ($source as $name => $url) { 
    foreach($url as $_url) { 
     echo $name.' - '; 
     echo $_url.'<br>'; 
    } 
    } 
+0

OMG ......我无法相信我错过了。 :) 谢谢! – John 2009-12-21 04:38:58

0

我只是复制你提供的代码,它给了我正确的结果:

 
$array = array 
(
    'test1' => Array 
     (
      'http://www....' 
     ), 

    'test2' => Array 
     (
      'http://www....' 
     ), 

    'test3' => Array 
     (
      'http://www....' 
     ), 

    'test4' => Array 
     (
      'http://www....' 
     ), 

    'test5' => Array 
     (
      'http://www.yahoo.com', 
      'http://www.google.com' 
     ) 

); 

foreach($array as $name=>$url) 
{ 
    foreach($url as $_url) 
    { 
     echo $name.' - '; 
     echo $_url.'
'; } }

这是我得到的结果:

测试1 - http://www ....
test2 - http://www ....
test3 - http://www ....
TEST4 - http://www ....
TEST5 - http://www.yahoo.com
TEST5 - http://www.google.com