PHP数组foreach问题

时间:2009-12-21 04:25:44

标签: php

我有一个数组,我似乎无法将我的数据退出。我想要的是每个名称(test1 ...)都有多个与之关联的网址。如果你看一下最后一个测试(test5),就会有2个网址,但这个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 个答案:

答案 0 :(得分: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>';
    }
  }

答案 1 :(得分: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.'
'; } }

这些是我得到的结果:

test1 - http://www ....
test2 - http://www ....
test3 - http://www ....
test4 - http://www ....
test5 - http://www.yahoo.com
test5 - http://www.google.com